【问题标题】:How to serialize a class generated from XSD to XML如何将从 XSD 生成的类序列化为 XML
【发布时间】:2011-08-26 04:39:29
【问题描述】:

我从 Visual Studio 创建了一个 XSD 文件,也可以生成一个示例 XML,但我的目标是在运行时使用这个 XSD 创建一个 XML 文件。

我使用 XSD.exe 从我的 XSD 文件生成一个类,然后创建了一个程序来填充“类”中的对象。如何将对象序列化为 XML 文件?

【问题讨论】:

标签: c# xml serialization xsd


【解决方案1】:

这两个示例都将流打开,并且 XmlFormatter 是 BizTalk 库的一部分 - 所以 XmlSerializer 会更合适:

using (Stream stream = File.Open(fileName, FileMode.Create))
{
    XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
    serializer.Serialize(stream, MyObject);
    stream.Flush();
}

【讨论】:

    【解决方案2】:

    当您使用 XSD.exe 工具创建了用于序列化和反序列化 Xml 文件的类后,您可以使用 .. 将实例写回到文件中

    Serialization! (Archive)

      Stream stream = File.Open(filename, FileMode.Create);
      XmlFormatter formatter = new XmlFormatter (typeof(XmlObjectToSerialize));
      formatter.Serialize(stream, xmlObjectToSerialize);
      stream.Flush();
    

    【讨论】:

    • 啊,对不起,是的。我选择了二进制格式化程序!但是 XmlFormatter 也可以!看到@KenF 的回答。
    【解决方案3】:

    二进制格式为二进制,XML 使用 XML 版本:

    XmlFormatter serializer = new XmlFormatter(typeof(MyObject));
    serializer.Serialize(stream, object1);
    

    【讨论】:

    • 我很确定你的意思是XmlSerializer
    • 必须是 System.Xml.Serialization.XmlSerializer 而不是 XmlFormatter 正如 Justin 指出的那样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2013-05-01
    • 2011-08-28
    相关资源
    最近更新 更多