我有一個返回簡單對象的WebApi,但是當我強制它返回XML(Accept: application/xml
)時,它忽略了我在對象上設置的[XmlAttribute]
屬性。XmlSerializer忽略WebApi中的[XmlAttribute]
這是我的目標:
public class Foo
{
[XmlAttribute]
public string Bar { get; set; }
}
和我的代碼返回這樣的:
[RoutePrefix("api/mytest")]
public class MyTestController : System.Web.Http.ApiController
{
[HttpGet]
[Route("gettest")]
public Foo GetTest()
{
return new Foo() { Bar = "foobar" };
}
}
生成的XML是:
<Foo>
<Bar>foobar</Bar>
</Foo>
而我希望它這樣返回:
<Foo Bar="foobar">
</Foo>
爲什麼WebApi使用的XmlSerializer忽略[XmlAttribute]
屬性,以及如何讓它像我想要的那樣工作?
什麼是「簡單對象」的類型?我有一種感覺,你的Foo Bar不是你真正的代碼。 –
你說得對,Foo Bar並不是我真正的代碼,但我確實用我在問題中描述的內容重新創建了這個問題,所以我的真實代碼並不重要,因爲Foo Bar也失敗了。 – GTHvidsten