У меня есть класс в .NET, который реализует IXmlSerializable. Я хочу сериализовать его свойства, но они могут быть сложными типами. Эти сложные типы будут совместимы с сериализацией XML, но они не реализуют сами IXmlSerializable. Из моих методов ReadXml и WriteXml, как мне вызвать логику чтения/записи по умолчанию на XmlReader/XmlWriter, который передается мне.Как использовать стандартную сериализацию XML из встроенных методов XML-сериализации
Возможно, код будет сделать его более ясным, что я хочу:
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 был ключом к решению проблемы. Я не ответил на текущий ответ, потому что он не объясняет, как это сделать. –