从类生成XML

时间:2011-11-26 21:21:01

标签: c# xml xml-serialization

我想从一个类构建以下XML节点。

<Foo id="bar">some value</Foo>

我的班级定义应该如何?

class Foo
{
   public string Value {set;get;}
   public string id{set;get;}
}

我相信我应该为这些属性添加一些XML属性,但不确定它们是什么。

2 个答案:

答案 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