我从基类继承了一个继承的设置类,我希望(反)单独序列化(例如)。
[ProtoContract]
[ProtoInclude(1, typeof(GlobalSettings))]
[ProtoInclude(2, typeof(UserSettings))]
public class BaseSettings
{
}
[ProtoContract]
public class GlobalSettings: BaseSettings
{
[ProtoMember(1)]
public string TempPath { get; set; }
}
[ProtoContract]
public class UserSettings: BaseSettings
{
[ProtoMember(1)]
public int UILanguage { get; set; }
}唯一的问题是,我不能失去配置,如果UserSettings不再从BaseSettings继承并转移到另一个程序集独立使用,那么(反)序列化仍然是可能的(有某种转换或没有)而不访问GlobalSettings类吗?
发布于 2017-05-04 15:11:29
继承是序列化模型的一个基本部分,特别是当您谈到Deserialize<BaseSettings>时。如果只执行Deserialize<GlobalSettings>或Deserialize<UserSettings>之类的操作,那么您可能可以删除[ProtoInclude],但是问题就变成了将BaseSettings的成员宣布为子类型。有办法做到这一点。
https://stackoverflow.com/questions/43786153
复制相似问题