【发布时间】:2011-10-18 17:25:59
【问题描述】:
我正在开发一个 RESTful WCF 服务,它返回由 XML 序列化程序(与 DataContract 序列化程序相反)生成的 XML。
虽然大多数对象的格式都正确,但返回的根元素似乎忽略了我的 XML 序列化属性。
例如,资源/accounts/ 返回我的AccountList 类的XML 序列化表示(它本身是我自己的ObjectList<T> 类的子类,它有一些应该序列化的属性)。但是我没有得到我想要的结果。
这是我的代码:
[XmlRoot("accounts")]
public class AccountList : ObjectList<Account> {
}
public class ObjectList<T> : List<T> {
[XmlAttribute("foo")]
public Int32 FooProperty { get; set; }
}
[OperationContract]
[WebGet(UriTemplate="/accounts")]
public AccountList GetAccounts() {
return new AccountList() {
new Account("bilbo baggins"),
new Account("steve ballmer")
};
}
这就是网络服务返回的内容:
<arrayOfAccount>
<Account>
<name>biblo baggins</name>
</Account>
<Account>
<name>steve ballmer</name>
</Account>
</arrayOfAccount>
所以主要问题是我想要的 AccountList 类的序列化被忽略了,我也想知道如何获取它,所以“Account”是小写的,就像“name”属性一样(我使用 [ XmlElement("name")] 在这些属性上,它工作正常。
谢谢!
【问题讨论】:
标签: xml wcf serialization xml-serialization