C# 如何使用XmlWriter/XmlReader读取/写入复杂对象
我一直在试图找到一种使用XmlReader/XmlWriter编写XML的简单方法。我真的不喜欢使用接口“IXmlSerializable”,但对于我的一些数据类,我没有选择 总之,我想做的很简单:C# 如何使用XmlWriter/XmlReader读取/写入复杂对象,c#,serialization,xmlreader,xmlwriter,C#,Serialization,Xmlreader,Xmlwriter,我一直在试图找到一种使用XmlReader/XmlWriter编写XML的简单方法。我真的不喜欢使用接口“IXmlSerializable”,但对于我的一些数据类,我没有选择 总之,我想做的很简单: private MyClass myObject; public void WriteXml(XmlWriter writer) { writer.WriteObject(myObject); // <-- this method doesn't exists } 私有MyClass
private MyClass myObject;
public void WriteXml(XmlWriter writer)
{
writer.WriteObject(myObject); // <-- this method doesn't exists
}
私有MyClass myObject;
public void WriteXml(XmlWriter)
{
writer.WriteObject(myObject)尝试使用XmlDocument类。它使用XmlNode作为轻松写出xml的基础。您还可以序列化一个类,或者使用DataSet类写出xml,或者将其读回DataSet或XmlDocument类型结构。经过反复研究,我发现一些非常简单的东西。下面是我为那些o您想知道我是如何解决我的问题的(与阅读和元素类似):
我不知道为什么我要把问题复杂化,但它再简单不过了。你看过LINQ to XML吗?这有点有用,但效果不错。是的,我知道这个想法,但从未使用过。但我的问题是,我的复杂对象有许多子对象,每个子对象定义了XmlAttributes。所以我需要阅读这些属性我只是不想盲目地写元素。
public static void WriteElement(XmlWriter writer, string name, object value)
{
var serializer = new XmlSerializer(value.GetType(), new XmlRootAttribute(name));
serializer.Serialize(writer, value);
}