我想从一个类构建以下XML节点。
<Foo id="bar">some value</Foo>
我的班级定义应该如何?
class Foo
{
public string Value {set;get;}
public string id{set;get;}
}
我相信我应该为这些属性添加一些XML属性,但不确定它们是什么。
答案 0 :(得分:9)
看一下System.Xml.Serialization命名空间下的属性。在您的情况下,该类应该类似于下面的代码。
public class StackOverflow_8281703
{
[XmlType(Namespace = "")]
public class Foo
{
[XmlText]
public string Value { set; get; }
[XmlAttribute]
public string id { set; get; }
}
public static void Test()
{
MemoryStream ms = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(Foo));
Foo foo = new Foo { id = "bar", Value = "some value" };
xs.Serialize(ms, foo);
Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray()));
}
}
更新:添加了序列化类型的代码。
答案 1 :(得分:2)
对于C#和Visual Basic,没有理由手动执行此操作。 Visual Studio包含一个命令行工具,可以为您生成类或xml架构。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx。