我采用了将xml反序列化为对象的方法,但是有些节点相对较小,我发现为这样创建一个类很奇怪。让我举个例子:
public class Plugin
{
...
List<Foo> Foos{ get; set; }
List<Bar> Bars{ get; set; }
...
}
[Serializable]
public class Foo
{
[XmlText()]
public string PluginId { get; set; }
}
[Serializable]
public class Bar
{
[XmlAttribute("Name")]
public string Name { get; set; }
}
它是如何在XML模式中定义的
<Plugin>
<Foos>
<Foo>Some Text</Foo>
<Foo>Some More Text</Foo>
</Foos>
<Bars>
<Bar Name="Some Name"/>
<Bar Name="Some Other Name"/>
</Bars>
我是否可以在这两个字段的插件类中设置一个属性,让我可以在不创建包含每个字段的2个类的情况下进行魔术?
答案 0 :(得分:1)
Foos
可以
[XmlArray("Foos"), XmlArrayItem("Foo")]
public List<string> Foos {get; set;}
但Bar
必须保留 - 否则您无法配置该属性。