2011-05-16 52 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的會比較合適:

​​