![](/img/trans.png)
[英]VB.net XML Serialization/Deserialization, How to Put Attributes for Lists
[英]How do I write objects for easy XML Serialization in VB.NET?
我正在VB.NET中編寫一個小型應用程序,我希望某些類能夠將自身寫出到XML中以充當“保存”功能。 我已經看到用於生成VB類的XSD文件,這些類可以很容易地將其自身序列化為XML和從XML序列化。 如果我在自己創建類時需要遵循任何預先存在的XML格式,該怎么辦?
使用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項,快速解決方案是使用數據表或數據集,因為它們是可序列化的。
要使用簡單的“保存”功能,請使用.net xml序列化[1]或在內存中創建DateSet以將“世界狀態”持久保存在您認為合適的許多DateTables中。 而是取決於要持久化的對象模型的復雜程度。
[1]最簡單的示例,我很快就能找到(C#,對不起,您會發現要點) http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.