Dav*_*ton 3 c# arrays xml-serialization
所以我正在处理一些我认为很可能形成的XML文件,我正在试图弄清楚如何以及是否可以使用XmlSerializer将此XML反序列化为逻辑业务对象.假设我有以下XML文件:
<Root>
<ArrayType1 Name="Bob"/>
<ArrayType1 Name="Jim"/>
<ArrayType2 Name="Frank">
<SubItem Value="4"/>
</ArrayType2>
<ArrayType2 Name="Jimbo">
<SubItem Value="2"/>
</ArrayType2>
</Root>
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个具有Root,ArrayType1和ArrayType2这三种类型的类,但是我想在Root中获得两个列表,一个包含ArrayType1项的集合,另一个包含ArrayType2项的集合,但似乎这些项目需要有某种根,例如,我知道如何反序列化以下内容:
<Root>
<ArrayType1Collection>
<ArrayType1 Name="Bob"/>
<ArrayType1 Name="Jim"/>
</ArrayType1Collection>
<ArrayType2Collection>
<ArrayType2 Name="Frank">
<SubItem Value="4"/>
</ArrayType2>
<ArrayType2 Name="Jimbo">
<SubItem Value="2"/>
</ArrayType2>
</ArrayType2Collection>
</Root>
Run Code Online (Sandbox Code Playgroud)
但是,如果没有围绕ArrayType#元素的父ArrayType#Collection元素,我将如何反序列化?
XML Serializer是否会允许这样做?
Mar*_*ell 11
不只是:
[Serializable]
public class Root {
[XmlElement("ArrayType1")]
public List<ArrayType1> ArrayType1 {get;set;}
[XmlElement("ArrayType2")]
public List<ArrayType2> ArrayType2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
?
或者,只需将xml放入文件("foo.xml")并使用:
xsd foo.xml
xsd foo.xsd /classes
Run Code Online (Sandbox Code Playgroud)
并查看生成的foo.cs
| 归档时间: |
|
| 查看次数: |
3357 次 |
| 最近记录: |