如何避免在反序列化时为每个xml属性创建一个新类
本文关键字:创建 新类 一个 属性 xml 反序列化 何避免 | 更新日期: 2023-09-27 18:21:33
我已经采取了将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>
我不是可以在Plugin类中为这两个字段设置一个属性吗?这样我就可以在不创建两个类的情况下实现魔术,每个类包含一个字段吗?
Foos
可以
[XmlArray("Foos"), XmlArrayItem("Foo")]
public List<string> Foos {get; set;}
但是,Bar
必须保留,否则无法配置属性。