2014-09-05 75 views
0

我想为OData协议V4(Microsoft.OData.Core)使用ODataLib生成Atom格式的有效载荷。我保证,Content-Type和Accept标头是指应用程序/原子+ XML,然而CreateODataEntryWriter一个电话总是导致异常:OData V4的ODataLib是否支持请求中的Atom载荷?

Microsoft.OData.Core.ODataContentTypeException:支持的MIME类型 不能被发现匹配 请求的可接受的MIME类型。支持的类型 'application/json; odata.metadata = minimal; odata.streaming = true; IEEE754Compatible = false, application/json; odata.metadata = minimal; odata.streaming = true; IEEE754Compatible = true, application/json; odata.metadata = minimal; odata.streaming = true, application/json; odata.metadata = minimal; odata.streaming = false; IEEE754Compatible = false, application/json; odata.metadata = minimal; odata。 streaming = false; IEEE754Compatible = true, application/json; odata.metadata = minimal; odata.streaming = false, application/json; odata.metadata = minimal; IEEE754Compatible = false, application/json; odata.metadata = minimal ; IEEE754Compatible = true, application/json; odata.metadata = minimal, application/json; o data.metadata = full; odata.streaming = true; IEEE754Compatible = false, application/json; odata.metadata = full; odata.streaming = true; IEEE754Compatible = true, application/json; odata.metadata = full; odata。 streaming = true, application/json; odata.metadata = full; odata.streaming = false; IEEE754Compatible = false, application/json; odata.metadata = full; odata.streaming = false; IEEE754Compatib ...' 请勿匹配任何可接受的MIME类型'application/atom + xml'。

这里的示例代码导致异常:

var writerSettings = new ODataMessageWriterSettings(); 
    writerSettings.SetContentType(ODataFormat.Atom); 
    var messageWriter = new ODataMessageWriter(request, writerSettings, model); 
    var entryWriter = messageWriter.CreateODataEntryWriter(); 

我检查了库代码,发现ODataMessageWriterSettings有一个属性EnableAtom但这个属性被声明为内部的,它似乎没有不从库内部设置,所以它看起来总是假的。我知道Atom格式在OData V4中已经过时,是否支持输入有效负载?

回答

1

自DataLib 6.3.0发布以来,ATOM被禁用,请参阅release note。实际上,您可以使用6.3之前的ODataLib版本来生成ATOM有效负载,但V4中的新功能可能不会得到很好的支持。

+0

谢谢,这解释了它。 – 2014-09-26 13:39:02