我已经设法在大多数情况下反序列化我的XML,但我坚持一个特定的事情。如何获取元素的值(如果它在数组中),并且该数组中的每个项都有自己的属性。让我告诉你我有什么
<BusinessObject Name="BusinessName" RecID="12345">
<FieldList>
<Field Name="Field1">FieldValue1</Field>
<Field Name="Field2">FieldValue2</Field>
</FieldList>
</BusinessObject>
所以这是一个简化版本,但显示了XML的基础。我目前在尝试在各自的Field元素中捕获“FieldValue1”和“FieldValue2”时遇到了麻烦。
[XmlRoot("BusinessObject")]
public sealed class BusinessObject
{
[XmlAttribute("Name")]
public string Name { get; set; }
[XmlAttribute("RecID")]
public string RecID { get; set; }
[XmlElement("FieldList", Type = typeof(FieldList))]
public FieldList FieldList { get; set; }
public BusinessObject()
{
FieldList = null;
}
public static BusinessObject FromXmlString(string xmlString)
{
var reader = new StringReader(xmlString);
var serializer = new XmlSerializer(typeof(BusinessObject));
var instance = (BusinessObject)serializer.Deserialize(reader);
return instance;
}
}
[Serializable]
public class FieldList
{
[XmlElement("Field", Type = typeof(Field))]
public Field[] Fields { get; set; }
public FieldList()
{
Fields = null;
}
}
[Serializable]
public class Field
{
[XmlAttribute("Name")]
public string Name { get; set; }
public Field()
{
}
}
我确信这只是一件我想念的简单事情,但我在试图将问题转化为文字以进行相关搜索方面遇到了麻烦。
非常感谢,
标记
答案 0 :(得分:0)
谢谢你看看。显然我应该在发布之前发挥更多作用,因为我已经设法让它发挥作用。我必须将以下内容添加到Field类:
[Serializable]
public class Field
{
[XmlAttribute("Name")]
public string Name { get; set; }
[XmlText]
public string Value { get; set; }
public Field()
{
}
}
不幸的是我只是在这里运行快递副本,所以我无法在没有命令提示符的情况下使用xsd。
干杯,
标记