如何在ASP.NET WebApi 2.2 ODATA服務中生成ATOM格式的輸出?創建JSON版本或簡單的XML格式非常簡單。但無論我如何請求Content-Type,我總是會在配置中獲得第一種格式。 (郵遞員使用Chrome瀏覽器,或設置在製作方法的請求的Content-Type。)如何使用ASP.NET WebApi 2.2生成ATOM格式的ODATA服務?
如果我使用WCF數據服務,我得到ATOM格式的結果。但據我所知,ODATA v4僅在WebApi中實現,而不是在WCF中實現。所以,這似乎有點奇怪,我不能格式化任何方式,我喜歡...
我的配置代碼是最基本的:
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
感謝,
AntiTalent
UPDATE: 使用typical solution found on the net(從1日評論鏈接,@mdisibrio),我得到這個(2.2的WebAPI):
<ODataServiceDocument
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/Microsoft.OData.Core">
<EntitySets>
<ODataEntitySetInfo>
<Name>Projects</Name>
<Title i:nil="true"/>
<Url>Projects</Url>
</ODataEntitySetInfo>
</EntitySets>
<FunctionImports/>
<Singletons/>
</ODataServiceDocument>
但我想獲得的(WCF數據服務):
<service xmlns="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom"
xml:base="http://MYSERVER/Service.svc/">
<workspace>
<atom:title>Default</atom:title>
<collection href="ProjectList">
<atom:title>ProjectList</atom:title>
</collection>
</workspace>
</service>
是的,我充分意識到,該機構有不同的名稱。這不是我的問題。
是否[這個答案](http://stackoverflow.com/a/25269213/458354)解決你想要完成的?它會爲請求處理程序添加一個原子格式器。不幸的是,v4默認不會添加它。 – mdisibio 2014-09-02 21:49:58
@mdisibio:謝謝。已經嘗試過了。它確實會生成XML,但格式不正確。查看我的更新。 – AntiTalent 2014-09-03 08:07:12
Arrrg ...我花了這麼長時間才弄清楚如何獲得一個XML響應,我從來沒有注意到它是普通的xml而不是Atom。 [這是最接近的解釋(http://www.infoq.com/news/2014/03/asp-net-odata-4)我發現,使任何意義,因爲6.1林達: _OData核心庫能夠序列化OData v4 Atom格式,但由於Atom規範尚未處於CS2階段,因此這尚未正式支持._ – mdisibio 2014-09-04 07:01:42