Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用XmlWriter/XmlReader读取/写入复杂对象_C#_Serialization_Xmlreader_Xmlwriter - Fatal编程技术网

C# 如何使用XmlWriter/XmlReader读取/写入复杂对象

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

我一直在试图找到一种使用XmlReader/XmlWriter编写XML的简单方法。我真的不喜欢使用接口“IXmlSerializable”,但对于我的一些数据类,我没有选择

总之,我想做的很简单:

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);
    }