Я работаю над сервисом REStful WCF, который возвращает XML, сгенерированный сериализатором XML (в отличие от сериализатора DataContract
).
Хотя большинство объектов правильно отформатированы, корневым элементом являетсякажется, что возвращаемый объект игнорирует мои атрибуты сериализации XML.
Например, ресурс /accounts/
возвращает сериализованное представление XML моего класса AccountList (сам по себе подкласс моего собственного класса 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")] на этих свойствах, и он отлично работает.
Спасибо!