Asp.net web api 如何在不删除XML序列化程序的情况下将默认序列化程序设置为JSON
是否可以使JSON成为WebApi2中的默认序列化程序,而不删除XML序列化程序Asp.net web api 如何在不删除XML序列化程序的情况下将默认序列化程序设置为JSON,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,是否可以使JSON成为WebApi2中的默认序列化程序,而不删除XML序列化程序 我曾尝试将XmlSerializer置于后面,将JsonSerializer置于前面,但似乎没有任何变化。默认情况下,json格式化程序应该“赢”。 有几件事决定了格式化程序将“获胜” 如果JSON格式化程序甚至可以编写您的类型,您可能需要首先验证这一点。如果您使用DataContractSerializer,它会有点挑剔,json.net版本会表现得更好(这是默认版本) 如果您没有AcceptHeader,那么内
我曾尝试将XmlSerializer置于后面,将JsonSerializer置于前面,但似乎没有任何变化。默认情况下,json格式化程序应该“赢”。 有几件事决定了格式化程序将“获胜”
defaultcontentcongregator
)现在将以XML和JSON格式化程序结束,并调用SelectResponseMediaTypeFormatter
在这里,它基本上会选择列表中的第一个格式化程序(我用一个caviat来表示,因为它有点复杂),因此您需要验证您的列表是否按照预期的顺序重新排序
最后,我不认为您需要这样做,因为上面的内容应该可以修复,您可以随时替换IContentNegotiator并覆盖SelectResponseMediaTypeFormatter,如果您有多个格式化程序,您可以选择Json格式。我的理解是,这与客户端在accept标头中发送的内容有更多关系。如果XML是accept头中的第一个内容,并且XML序列化程序存在,那么您将得到它。@CraigW。但若客户机什么也不发送呢?