У меня есть WebApi, который возвращает простой объект, но когда я заставляю его возвращать как XML (Accept: application/xml
), он игнорирует атрибут [XmlAttribute]
, который я установил для объекта.XmlSerializer игнорирует [XmlAttribute] в WebApi
Это мой объект:
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>
Почему XmlSerializer, используемый WebApi, игнорирует атрибут [XmlAttribute]
и как я могу заставить его работать так, как я хочу?
Каков тип «простого объекта»? У меня такое чувство, что ваш Foo Bar - это не ваш настоящий код. –
Вы правы, что Foo Bar - это не мой настоящий код, но я действительно воссоздал проблему с тем, что я описал в своем вопросе, поэтому мой настоящий код не имеет значения, поскольку Foo Bar также терпит неудачу. – GTHvidsten