我正在寫在VB.NET一個小應用程序,我想一些類要能自己寫出來,以XML作爲一個「保存」功能。我已經看到用於生成VB類的XSD文件,它們可以非常容易地將自己序列化爲XML。我會怎麼做,如果我有我需要遵守,因爲我剛剛創建的類自己的任何預先存在的XML格式?我怎樣寫在VB.NET容易XML序列化對象?
3
A
回答
6
使用的System.Xml和的System.Xml.Serialization命名空間。他們描述了你可以使用相應標籤來註釋類的成員的類。
例如(在C#):
[XmlRoot("foo")]
public class Foo
{
[XmlAttribute("bar")]
public string bar;
[XmlAttribute("baz")]
public double baz;
}
或在VB.NET(可能不是完全語法正確):
<XmlRoot ("foo")> _
Public Class Foo
<XmlAttribute ("bar")>_
Public bar As String
<XmlAttribute ("baz")>_
Public baz As String
End Class
然後,您可以使用XmlSerializer類輸出XML。
在C#:
using(XmlSerializer xmls = new XmlSerializer(typeof(Foo)){
TextWriter tw = new StreamWriter("foo.xml");
//use it!
}
或VB:
Using xmls As New XmlSerializer(gettype(Foo)), _
tw As TextWriter = New StreamWriter("foo.xml")
''//use it!
End Using
2
既然你問使它「易」,然後有三個規律可循,這將有助於使事情變得非常簡單:
- 僅使用可序列
- 不要使用集合屬性類型或數組作爲屬性需要被序列化
- 沒有與「壞」的副作用性能。 「壞」,我主要是指兩個公共財產,由相同的基礎私人領域支持。
請注意,如果您違反這些規則,您可能仍會序列化您的課程,但這可能需要更多的工作。
對於項目#2,快速修復是利用一個數據表或數據集,因爲這些是可序列化。
0
去一個簡單的「保存」功能,既可以使用.NET XML序列化[1],或者創建自己的內存DateSet正堅持在儘可能多的DateTables作爲您認爲合適的「世界的狀態」。它取決於你想要堅持的對象模型的完成方式。
[1]最簡單的例子,我可以很快找到(C#,抱歉,但你會得到的要點)http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
相關問題
- 1. XML序列化:對象未序列化
- 2. VB.NET XML序列化繼承對象列表
- 3. Android XML對象序列化
- 4. Xml序列化對象(HttpBrowserCapabilities)
- 5. XML對象序列化
- 6. 序列化對象到XML
- 7. 如何容易序列化對象的XML文件使用XStream庫
- 8. 我怎樣才能轉化爲Vb.NET
- 9. 我怎樣才能在VB.net
- 10. 我怎樣才能在vb.net
- 11. 我怎樣才能在vb.net
- 12. 我怎樣才能在vb.net
- 13. 我怎樣才能在vb.net
- 14. 序列化對象到XML和XML
- 15. 將XML字符串反序列化爲對象VB.NET
- 16. 反序列化XML到對象在C#
- 17. vb.net序列化系統對象?
- 18. JSON反序列化到VB.Net對象
- 19. Vb.net反序列化json中的對象
- 20. 恢復以前序列化的JFrame對象,怎麼樣?
- 21. VB.Net - 我怎樣才能獲得包含在列表中的對象的類型
- 22. 將CCTray內容XML反序列化爲對象列表
- 23. 對象列表序列化xml錯誤
- 24. 我怎麼反序列化對象的不同陣列GSON
- 25. 我寫了一些殺人的Javascript。我怎樣才能使它容易重用?
- 26. 無法在VB.NET中反序列化XML
- 27. 怎樣用簡單的XML對象
- 28. 如預期的那樣,對象未序列化爲XML(UTF-8)?
- 29. XML包含對象列表的對象的序列化列表
- 30. 我怎樣纔有效對象在PHP