XmlSerializer忽略WebApi中的
我有一个返回一个简单对象的WebApi,但当我强制它以XML格式返回( Accept: application/xml
)时,它忽略了我在对象上设置的[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是:
foobar
而我希望它会像这样返回:
为什么WebApi使用的XmlSerializer忽略[XmlAttribute]
属性,如何让它像我想的那样工作?
尝试将WebApi中的此全局配置值设置为true
GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
默认情况下,Web API在XmlMediaTypeFormatter中使用DataContractSerializer。
这对我有用……不需要改变全局配置。
var configuration = new HttpConfiguration(); configuration.Formatters.XmlFormatter.UseXmlSerializer = true; return Request.CreateResponse(HttpStatusCode.OK, myObjectToSerialize, configuration);
- 在MVC 4中使用自定义授权
- 凭据标志为“true”,但是“Access-Control-Allow-Credentials”
- 在下载时将用户特定数据嵌入到authenticode签名安装程序中
- UseWindowsAzureActiveDirectoryBearerAuthentication如何在validation令牌时起作用?
- 在WebApi或MVC控制器中使用ConfigureAwait(false)有任何危险吗?
- 通用Web Api控制器,支持任何模型
- 用户或管理员未同意使用该应用程序 – 发送此用户和资源的交互式授权请求
- 如何回答请求但继续在WebApi中处理代码
- REST服务身份validation