【发布时间】:2015-05-22 15:45:53
【问题描述】:
在我的网络服务中,我有以下类
public class ContactDetails
{
public string Name { get; set; }
public string Address { get; set; }
public string Postcode { get; set; }
public List<string> PhoneNumber { get; set; }
}
在 XML 输出中返回以下数据
<ContactDetails>
<Name>MR SMITH</Name>
<Address>I HIGH STREET, SOMETOWN</Address>
<Postcode>AA1 2BB</Postcode>
<PhoneNumber>
<string>01234 567890</string>
<string>01234 567890</string>
</PhoneNumber>
</ContactDetails>
显然,我们希望电话号码在 PhoneNumbers>PhoneNumber 中的结构更合理,但似乎无法完全正确。
我们添加了 XmlElement 标记,它几乎就在那里;这样
public class ContactDetails
{
public string Name { get; set; }
public string Address { get; set; }
[XmlElement(ElementName = "PC")]
public string Postcode { get; set; }
[XmlElement(ElementName = "PhoneNumber")]
public List<string> PhoneNumber { get; set; }
}
产生以下内容
<ContactDetails>
<Name>MR SMITH</Name>
<Address>I HIGH STREET, SOMETOWN</Address>
<PC>AA1 2BB</PC>
<PhoneNumber></PhoneNumber>
<PhoneNumber></PhoneNumber>
</ContactDetails>
但正如你所见,我们现在已经失去了电话号码的嵌套......所需的输出将是:
<ContactDetails>
<Name>MR SMITH</Name>
<Address>I HIGH STREET, SOMETOWN</Address>
<PC>AA1 2BB</PC>
<PhoneNumbers>
<PhoneNumber></PhoneNumber>
<PhoneNumber></PhoneNumber>
</PhoneNumbers>
</ContactDetails>
【问题讨论】:
标签: c# xml web-services serialization