2011-05-16 53 views
4

我从Visual Studio创建了一个XSD文件,并且也可以生成示例XML,但我的目标是使用此XSD在运行时创建XML文件。如何将从XSD生成的类序列化为XML

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

+1

http://msdn.microsoft.com/en-us/library/ms731073.aspx – turtlepick 2011-05-16 05:40:22

+0

@flaviotsf ... thx..it工作 – jojo 2011-05-16 05:57:01

回答

3

当您创建的类序列化和使用xsd.exe工具,你可以写你的情况下,回到使用文件反序列化XML文件..

Serialization! (Archive

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

输出是不可读... @flaviots f's的做法.. – jojo 2011-05-16 05:56:04

+0

啊,对不起,是的。我选了二进制格式化程序!但是XmlFormatter也可以工作!看到@ KenF的回答。 – Jaapjan 2011-05-16 07:43:46

0

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

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

您应该格式化您的代码以使其更具可读性。 – alex 2011-05-16 06:10:36

+1

我很确定你的意思是[XmlSerializer](http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx)? Justin指出, – Justin 2011-05-16 07:12:09

+0

必须是System.Xml.Serialization.XmlSerializer而不是XmlFormatter – 2012-05-19 15:19:14

7

两个那些例子离开流开,XmlFormatter是在BizTalk库的一部分 - 所以XmlSerializer的会比较合适:

​​