Is DataMember annotation (Order = n) required for protobuf-net v2?

A simple experiment: I created an entity model from Northwind and found that the generated classes do not work for protobuf-net v2 without adding a property Order. Is there a way to get the entity code generator to add Order, or is there a way to get protobuf-net to work without Order?

I need to change

[DataMemberAttribute()]

to

[DataMemberAttribute(Order=1)] etc.

NorthwindEntities e = new NorthwindEntities();

using(var file = File.Create("customers.bin"))
{
    Serializer.Serialize(file, e.Customers);
}
+5
source share
2 answers

What is required is that he has a way to allow members numeric keys. This can take the form of built-in attributes - for example, it allows [DataContract]/ [DataMember(Order=key)], [XmlType]/ [XmlElement(Order=key)]or [ProtoContract]/ [ProtoMember(key)].

[DataContract], , , ; :

[ProtoContract(InferTagFromName = true)]

(, , . ). , , [DataMember] , Order. .

, [DataMember]; BinaryFormatter ( , ), XmlSerializer ( , ); , , !

[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)]

; , , , , ; partial. , [ProtoPartialMember] . , :

[ProtoContract]
[ProtoPartialMember(key, memberName)]
[ProtoPartialMember(anotherKey, anotherMemberName)]
...
public partial class Order {}

, . , ([DataContract / [DataMember] , no Order`), - :

Serializer.GlobalOptions.InferTagFromName = true;

v2:

RuntimeTypeModel.Default.InferTagFromNameDefault = true;

v2 MetaType, , :

RuntimeTypeModel.Default.Add(typeof(Order), false)
            .Add(key, memberName).Add(anotherKey, anotherMemberName);

1, 2, 3,... :

   RuntimeTypeModel.Default.Add(typeof(Order), false)
            .Add(memberName, anotherMemberName, ...);

( MetaType )

, !

+13

ProtoBuf , , , .

<protocontract()>
Public Class Peer
   <ProtoMember(1)>
    Public Property PacketNumber As Long
    <ProtoMember(2)>
    Public Property DateCreated As DateTime
    <ProtoMember(3)>
    Public Property Data As String 
    <ProtoMember(4)>
    Public Property OriginatingTerminal As Integer
end class

,

+1

All Articles