【发布时间】:2009-05-22 14:37:14
【问题描述】:
我在 .NET 中有一个实现 IXmlSerializable 的类。我想序列化它的属性,但它们可能是复杂的类型。这些复杂类型将与 XML 序列化兼容,但它们本身不实现 IXmlSerializable。如何从我的 ReadXml 和 WriteXml 方法调用传递给我的 XmlReader/XmlWriter 上的默认读/写逻辑。
也许代码会让我想要的更清楚:
public class MySpecialClass : IXmlSerializable
{
public List<MyXmlSerializableType> MyList { get; set; }
System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema()
{
return null;
}
void IXmlSerializable.ReadXml(System.Xml.XmlReader reader)
{
// Read MyList from reader, but how?
// Something like this?
// MyList = (List<MyXmlSerializableType>)
reader.ReadObject(typeof(List<MyXmlSerializableType>));
}
void IXmlSerializable.WriteXml(System.Xml.XmlWriter writer)
{
// Write MyList to writer, but how?
// Something like this?
// writer.WriteObject(MyList)
}
}
【问题讨论】:
-
丹尼尔,您对此还有其他问题吗?我想你已经得到了答案。
-
ReadSubtree 方法是解决问题的关键。我没有将当前答案标记为已接受,因为它没有确切说明如何执行此操作。
标签: c# .net xml-serialization