如何在VB.NET中编写易于XML序列化的对象?

Mar*_*ark 3 xml vb.net xml-serialization

我正在VB.NET中编写一个小应用程序,我希望有些类能够将自己编写为XML以作为"保存"功能.我见过用于生成VB类的XSD文件,可以非常容易地将自己序列化为XML.如果我有任何预先存在的XML格式需要遵循,我将如何做到这一点,因为我只是自己创建类?

nim*_*ish 6

使用System.Xml和System.Xml.Serialization命名空间.它们描述了可用于使用相应标记对类成员进行注释的类.

例如(在C#中):

[XmlRoot("foo")]
public class Foo
{
     [XmlAttribute("bar")] 
     public string bar;
     [XmlAttribute("baz")] 
     public double baz;
}
Run Code Online (Sandbox Code Playgroud)

或者在VB.NET中(可能在语法上不完全正确):

<XmlRoot ("foo")> _
Public Class Foo
     <XmlAttribute ("bar")>_
     Public bar As String
     <XmlAttribute ("baz")>_
     Public baz As String
End Class
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用XmlSerializer类输出XML.

在C#中:

using(XmlSerializer xmls = new XmlSerializer(typeof(Foo)){
    TextWriter tw = new StreamWriter( "foo.xml" );
    //use it!
}
Run Code Online (Sandbox Code Playgroud)

或VB:

Using xmls As New XmlSerializer(gettype(Foo)), _
    tw As TextWriter = New StreamWriter("foo.xml")

    ''//use it!
End Using
Run Code Online (Sandbox Code Playgroud)

参考.