GTH*_*ten 4 c# xmlserializer asp.net-web-api
我有一个WebApi返回一个简单的对象,但当我强制它返回XML(Accept: application/xml
)时,它忽略了[XmlAttribute]
我在对象上设置的属性.
这是我的目标:
public class Foo
{
[XmlAttribute]
public string Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在代码中将其返回:
[RoutePrefix("api/mytest")]
public class MyTestController : System.Web.Http.ApiController
{
[HttpGet]
[Route("gettest")]
public Foo GetTest()
{
return new Foo() { Bar = "foobar" };
}
}
Run Code Online (Sandbox Code Playgroud)
生成的XML是:
<Foo>
<Bar>foobar</Bar>
</Foo>
Run Code Online (Sandbox Code Playgroud)
而我希望它会像这样返回:
<Foo Bar="foobar">
</Foo>
Run Code Online (Sandbox Code Playgroud)
为什么WebApi使用的XmlSerializer会忽略该[XmlAttribute]
属性,如何让它像我想的那样工作?
尝试将WebApi中的此全局配置值设置为true
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
Run Code Online (Sandbox Code Playgroud)
默认情况下,Web API在XmlMediaTypeFormatter中使用DataContractSerializer.
归档时间: |
|
查看次数: |
1131 次 |
最近记录: |