【发布时间】:2015-03-23 13:58:19
【问题描述】:
我有一个很大的对象,并且包含其他几个对象。整个东西是从一个 XML 文件反序列化的。
反序列化中的所有内容都正常工作,但以下内容除外:
[XmlTypeAttribute("ClientInformation")]
public class ClientInfo
{
public ClientInfo()
{
ClientName = "testclient";
ClientDisplayFullName = "testclient";
ClientDisplayShortName = "testclient";
ContentClientName = "";
ContentHeirarchy = new List<string>();
}
/// <summary>
/// The "ShortName" for this client (URL Friendly)
/// </summary>
public string ClientName { get; set; }
/// <summary>
/// This is used to determine what content path to use for content.
/// normally the same as the ClientName.
/// </summary>
public string ContentClientName { get; set; }
public List<string> ContentHierarchy { get; set; }
public string ClientDisplayFullName { get; set; }
public string ClientDisplayShortName { get; set; }
}
问题在于“ContentHierarchy”。 XML的相关部分如下:
<ClientInformation>
<ClientName>ABC</ClientName>
<ContentClientName>ABC</ContentClientName>
<ClientDisplayFullName>ABC&D</ClientDisplayFullName>
<ClientDisplayShortName>ABC&D</ClientDisplayShortName>
<ContentHierarchy>
<Content>XYZB</Content>
<Content>Base</Content>
</ContentHierarchy>
</ClientInformation>
此对象的所有非列表部分都正确反序列化。
我试图弄清楚我需要在 ContentHierarchy 的属性声明上方使用什么来让反序列化器使用 XML 文件中的 ContentHierarchy\Content 项填充它。
我尝试过使用XmlArray()、XmlArray(ContentHierarchy)、XmlElement(Content)、XmlElement(ContentHierarchy)、XmlArrayItem(Content),以及上述的各种组合。
每次,List<string> 的计数为 0。
我做错了什么?
【问题讨论】:
标签: c# xml serialization deserialization