我一直试图序列化一个类(见下文),它从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