反序列化XML,如何访问属性?

我有一些我正在使用和反序列化的XML。

  ... ...   

目前我将它反序列化到这个类:

 [XmlRoot("Foo")] public class Foo { public Foo() { } [XmlArrayItem("Bar")] public Bar[] Bars { get; set; } } 

这很好,除了我没有捕获@Baz的值。 我想添加Baz作为Foo的属性,但我不确定如何。 我将在我的Baz属性上设置什么属性才能正确反序列化xml?

 [WhatAttributeGoesHere("?")] public int Baz { get; set; } 

一般:

 [XmlAttribute] 

(使用可选的名称,命名空间等)就是你所追求的。

但是,您不能直接在集合上使用它。 你需要有一个Bars的包装类,其属性和:

 public class Foo { public BarWrapper Bars {get;set;} } public class BarWrapper { private readonly List bars = new List(); [XmlElement("Bar")] public List Items {get{return bars;}} [XmlAttribute] public int Baz {get;set;} } public class Bar {...}