在控制器中给定一个方法:
public class CustomerController : ApiController
{
[HttpGet]
public CustomerDto GetById([FromUri] int id)
{
.
.
return customerDto
}
}
有没有一种方法可以使用属性指定支持的媒体类型?例如,CustomerDto是一个复杂的类,只能使用JSON(application/json)进行序列化,而不是XML(application/xml),但也可以接受PDF(application/pdf)。是否有类似于以下内容的东西:
[SupportedMediaTypes("application/json", "application/pdf")] public class CustomerDto { // properties and methods }
[HttpGet(Accepts.JSON, Accepts.PDF)]
or
[HttpGet][AcceptJSON][AcceptXML]
or
[HttpGet][Accept("application/json")][Accept("application/pdf")]
如果传入的请求不被支持,可能会返回一个不支持的异常/状态。
注意 - 我不想完全删除XML序列化,因为这可以在全局范围内完成。相反,我希望定义每个路由所接受的内容。
使用 - ASP.NET WebAPI RC 1(需要升级)+自承载。