protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二...
继承的类必须使用 [ProtoInclude(...)] 关键字进行显式声明。 [ProtoContract] [ProtoInclude(7, typeof(SomeDerivedType))] class SomeBaseType {...} [ProtoContract] class SomeDerivedType {...} 代码中的数字7并没有特殊含义,就和[ProtoMemeber()]一样,但在SomeBaseType类中必须是唯一的。 序列化...
我有一个相当复杂的继承层次结构,包括泛型,我们正在尝试使用 protobuf .net 进行序列化。不幸的是,它似乎无法正确处理这种情况。这就是层次结构的样子。[System.Runtime.Serialization.DataContract] [ProtoBuf.ProtoInclude(1000, typeof(GenericBaseClass))] [ProtoBuf.ProtoInclude(1001, typeof(GenericBaseClass<str...
protobuf-net提供继承支持作为扩展,但它仍然以一种方式使消息与其他实现保持线路兼容。在推动,也许我可...
[ProtoInclude(100, typeof(DerivedClass))] public class BaseClass { [ProtoMember(1)] public int Id { get; set; } } [ProtoContract] public class DerivedClass : BaseClass { [ProtoMember(1)] public string Name { get; set; } [ProtoMember(2)] ...
[ProtoInclude(100, typeof(DerivedClass))] public class BaseClass { [ProtoMember(1)] public int Id { get; set; } } [ProtoContract] public class DerivedClass : BaseClass { [ProtoMember(1)] public string Name { get; set; } [ProtoMember(2)] ...
您可以使用[ProtoMember]在属性/字段上分配标签,并通过[ProtoInclude]分配子类型(与[XmlInclude]相比)...
[ProtoInclude(10,typeof(AndyUserModel))] publicclassUserModel { [ProtoMember(1)] publicstringName {get;set; } [ProtoMember(2)] publicstringPassword {get;set; } } [ProtoContract] publicclassAndyUserModel : UserModel { [ProtoMember(1)] ...
針對衍生類型,請套用[ProtoInclude(...)]至其基底類型 (請參閱下列範例) 。 針對宣告任何接受參數的建構函式,新增無參數建構函式或在[ProtoContract]屬性上指定SkipConstructor = true。 留下一個註解,解釋 protobuf-net 需求 (所以沒有人會意外移除) 。
[ProtoInclude(7, typeof(ProtoScholar))] public class ProtoAlien { [DataMember(Order = 1)] public string Name { get; set; } [DataMember(Order = 2)] public double? Average { get; set; } [DataMember(Order = 3)] public int? HowMuch ...