Das Objekt [] mList enthält alle Objekte, die die untergeordnete Auflistung es wünscht. Dies sollte eine Dummy-Wrapper-Klasse für den Rest der mehr spezifizierten Sammlungen von Objekten sein.ProtoBuf-Net: Vererbung [ProtoMember] des Typs object [] von einer übergeordneten Klasse
[ProtoInclude(98, typeof(Object1CollectionProto))]
[ProtoInclude(99, typeof(Object2CollectionProto))]
[ProtoInclude(100, typeof(Object3CollectionProto))]
public class ObjectCollectionProto
{
protected ObjectType mCollectionType;
protected object[] mList;
public ObjectCollectionProto(){}
[ProtoMember(1), DefaultValue(ObjectType.Base)]
public ObjectType CollectionType //enumeration for type
{
get { return mCollectionType; }
set { mCollectionType = value;}
}
[ProtoMember(2)]
public object[] List
{
get { return mList; }
set { mList = value;}
}
}
Dann haben wir ein Beispiel Kinderklasse der oben Dummy-Wrapper, der das Objekt [] davon Typ gewünscht ist erben soll.
[ProtoContract]
public class Object1CollectionProto : ObjectCollectionProto
{
public Object1CollectionProto()
{
}
}
Wie gehe ich über die Klassenhierarchie spezifizieren, so dass Object1CollectionProto eine das Objekt [] MList als eine Liste von Object1 der erbt, die serialisiert werden kann? Objekt1's können in meinem Fall bereits serialisiert werden. Nur nicht die Sammlung Version von ihnen.
'object []' wird einfach nicht funktionieren. Ich kann mir keine "guten" Wege vorstellen, das zu lösen, aber wenn ich Ihre Daten ansehe, bin ich verwirrt, warum Sie "ObjectCollectionProto" nicht durch "List" ersetzen können ... –
Ich habe das gesehen ein weiterer Beitrag, also werde ich es so machen! Danke Marc! – jStaff