Vac*_*ano 6 .net odata asp.net-web-api-odata odata-v4
我正在尝试启动并运行Web API OData V4端点.
我终于得到了它(在从我的端点删除所有DateTime属性之后),现在实体的列表是JSON.
我喜欢JSON,但我使用LinqPad来测试我的端点.它不理解我的Feed中实体列表的JSON.
我看起来似乎无法找到一种方法将其更改回XML,所以我在这里问.
有没有办法让Web API OData v4提要的实体列表是XML而不是JSON?
mdi*_*bio 13
很抱歉发布另一个答案,但我的第一个答案太长了.我发现这个链接:V4总是返回Json,果然,最后一个建议确实有效:
在WebAPiConfig中,将命名空间引用添加到:
using System.Net.Http.Formatting;
using System.Web.OData.Formatter;
Run Code Online (Sandbox Code Playgroud)
然后添加如下内容:
var formatters = ODataMediaTypeFormatters.Create();
config.Formatters.InsertRange(0, formatters);
Run Code Online (Sandbox Code Playgroud)
实体列表现在以xml的形式返回.
缺点是,现在所有的响应都默认为不太优选的,冗长的xml/atom.
好处是,$format
请求现在在v4中受到尊重.所以要回到json,你可以发出url(不会弄乱标题):(
http://<myodataurl>?$format=application/json;odata.metadata=full
或minimal或none)
但是,如前所述,LinqPad仍然无法识别v4架构,并且无法正确连接到此端点.