1
對象[] mList包含子集合想要的任何對象。 這應該是其他更多指定的對象集合的虛擬包裝類。ProtoBuf-Net:從父類繼承對象類型[]的[ProtoMember]
[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;}
}
}
然後,我們有一個上面的虛擬包裝的子類,它應該繼承它所需類型的對象[]。
[ProtoContract]
public class Object1CollectionProto : ObjectCollectionProto
{
public Object1CollectionProto()
{
}
}
如何去指定的類層次結構,使Object1CollectionProto繼承的對象[] mList爲可序列化Object1的名單? Object1的可以在我的情況下已經序列化。只是不是他們的集合版本。
'對象[]'只是不會工作。我想不出任何「好」的解決方法,但看着你的數據,我很困惑,爲什麼你不能只用'List替換ObjectCollectionProto' ...... –
我看到在另一篇文章,所以我會這樣做!謝謝Marc! – jStaff