2

我一直在尝试找到一种使用 XmlReader/XmlWriter 编写 XML 的简单方法。我不太喜欢使用接口“IXmlSerializable”,但我对某些数据类别无选择。

无论如何,我想做的很简单:

private MyClass myObject;
public void WriteXml(XmlWriter writer)
{
    writer.WriteObject(myObject); // <-- this method doesn't exists
}

所以,我找到了 2 个解决方法:

  1. 编写我自己的例程来手动编写我的对象。很可笑,因为 .Net 已经做到了。
  2. 使用 StringWriter 创建一个新的序列化程序并使用 WriteValue(string) 方法。

我还没有测试过第二个,但我认为它可能会起作用(由于 ReadValue 结果不确定)。

然后我的问题是:我错过了什么重要的东西还是唯一的方法?或者有没有更好的方法来处理它?

谢谢。

4

2 回答 2

5

玩了一圈之后,我发现了一个很简单的东西。这是我为那些想知道如何解决我的问题的人使用的代码(类似于阅读和元素):

    public static void WriteElement(XmlWriter writer, string name, object value)
    {
        var serializer = new XmlSerializer(value.GetType(), new XmlRootAttribute(name));
        serializer.Serialize(writer, value);
    }

我不知道为什么我使问题复杂化,但它不能比这更简单。

于 2010-12-11T02:29:54.347 回答
0

尝试使用 XmlDocument 类。它使用 XmlNode 作为轻松写出 xml 的基础。您还可以序列化一个类,或使用 DataSet 类写出 xml,或将其读回数据集或 XmlDocument 类型结构。

于 2010-12-11T02:24:50.337 回答