C# 如何停止使用Protobuf网络继承并直接使用继承的类?

C# 如何停止使用Protobuf网络继承并直接使用继承的类?,c#,inheritance,serialization,deserialization,protobuf-net,C#,Inheritance,Serialization,Deserialization,Protobuf Net,我有一个从基类继承的继承设置类,我想单独(反)序列化(示例) 唯一的问题是我无法承受失去配置的损失,如果用户设置不再从BaseSettings继承并移动到另一个程序集独立使用,是否可以这样做,(反)序列化仍然是可能的(有某种转换或没有转换)如果无法访问GlobalSettings类,继承是序列化模型的一个基本部分,尤其是在谈到反序列化时。如果您只执行反序列化或反序列化之类的操作,那么您可能可以删除[ProtoInclude],但问题是将基本设置的成员公布到子类型中。有很多方法可以做到这一点。我试

我有一个从基类继承的继承设置类,我想单独(反)序列化(示例)


唯一的问题是我无法承受失去配置的损失,如果用户设置不再从BaseSettings继承并移动到另一个程序集独立使用,是否可以这样做,(反)序列化仍然是可能的(有某种转换或没有转换)如果无法访问GlobalSettings类,继承是序列化模型的一个基本部分,尤其是在谈到反序列化时。如果您只执行
反序列化
反序列化
之类的操作,那么您可能可以删除
[ProtoInclude]
,但问题是将
基本设置
的成员公布到子类型中。有很多方法可以做到这一点。

我试着用[ProtoContract]创建另一个基类,只使用一个属性[ProtoMember(1)]UserSettings,但没有成功。创建一个只有[ProtoInclude(1,typeof(UserSettings)]的伪基类效果很好。因为您没有提到它,我想没有ProtoContract选项可以在不添加伪基类的情况下“伪造”继承。谢谢您的帮助。
[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; }
}