我一直試圖序列化一個類(見下文),它從List<int>
繼承而來,並且具有提供額外信息的字段。DataContractSerializer忽略集合的子類中的字段
最初,我一直在使用XmlSerializer
,但我在那裏也遇到了問題。
根據this post這是設計與XmlSerializer
不序列字段,但DataContractSerializer
應該工作。
任何建議將不勝感激!
[CollectionDataContract]
public class Group : List<int>
{
[DataMember]
public string Key { get; set; }
}
static void Main()
{
Group test = new Group { Key = "Test key" };
test.Add(60);
DataContractSerializer serializer = new DataContractSerializer(typeof(Group));
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, test);
stream.Position = 0;
test = serializer.ReadObject(stream) as Group;
Console.WriteLine("{0}: {1}", test.Key ?? "No luck", test[0]);
}
感謝, 諾亞
不幸的是我需要公開的對象以這種方式的所有對象或屬性。我想我將不得不實現一個包裝器來提供我需要的接口,然後序列化的一部分必須是將對象轉化爲你所提到的東西。謝謝! – noah