我有一个继承自基类的继承设置类,我想(de)单独序列化(例子)
[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继承并移动到另一个程序集以便独立使用,(de)序列化仍然可行(有些没有访问GlobalSettings类的转换或没有转换?
答案 0 :(得分:1)
继承是序列化模型的基本组成部分,尤其是,如果你谈论Deserialize<BaseSettings>
。如果您只是执行Deserialize<GlobalSettings>
或Deserialize<UserSettings>
之类的操作,那么您可以删除[ProtoInclude]
,但问题就会宣布成员BaseSettings
进入子类型。有办法做到这一点。