Ich habe viele Fragen zum Vererbungsmerkmal in Protobuf-Net gelesen. Ich frage mich nur, ob ich [DataContract], [DataMember] auf die gleiche Weise verwenden kann wie [ProtoContract], [ProtoMember]. Warum konnte ich [KnowType] nicht verwenden, anstatt [ProtoInclude] zu verwenden?Warum muss ich [ProtoInclude] verwenden?
Ich stelle diese Frage, weil ich bereits [DataContract], [DataMember] für die Serialisierung von Protobuf-Net verwendet habe. Es musste kein "Protobuf-Netz" hinzugefügt werden. Es hat nur "System.Runtime.Serialization" verwendet.
Aber ... Nun, wenn meine Klasse von einer Klasse erben muss, muss ich "Protobuf-net" für [ProtoInclude] -Attribut hinzufügen? zum Beispiel
using System.Runtime.Serialization;
namespace test
{
[DataContract]
/// [KnowType(typeof(SomeClass))]
/// or
/// [ProtoInclude(100,typeof(SomeClass))]
public class BaseClass
{
//...
[DataMember(Order=1)]
public string BlahBlahBlah {get; set;}
}
[DataContract]
public class ChildClass1 : BaseClass
{
//...
[DataMember(Order=1)]
public string BlahBlahBlah {get; set;}
}
}// end namespace
schließlich, frage ich mich, wenn ich 100 Kind-Klasse haben, werde ich mich nicht verrückt machen 100 [ProtoInclude] Tags innerhalb der Basisklasse hinzufügen?
Thx in adv für jede Hilfe
VEE
Beachten Sie, dass dies in v2 –
@Marc nicht mehr zutrifft. Thx für das Update. Ich werde dann auf V2 versuchen. – tong