我正在尝试将ODataLib用于OData协议V4(Microsoft.OData.Core)以Atom格式生成有效负载。我确保Content-Type和Accept标头引用application / atom + xml,但是对CreateODataEntryWriter的调用总是会导致异常:
Microsoft.OData.Core.ODataContentTypeException:支持的MIME类型 找不到匹配的可接受的MIME类型 请求。支持的类型 “应用程序/ JSON; odata.metadata =最小; odata.streaming = TRUE; IEEE754Compatible =假, 应用/ JSON; odata.metadata =最小; odata.streaming = TRUE; IEEE754Compatible =真, 应用/ JSON; odata.metadata =最小; odata.streaming =真, 应用/ JSON; odata.metadata =最小; odata.streaming = FALSE; IEEE754Compatible =假, 应用/ JSON; odata.metadata =最小; odata.streaming = FALSE; IEEE754Compatible =真, 应用/ JSON; odata.metadata =最小; odata.streaming =假, 应用/ JSON; odata.metadata =最小; IEEE754Compatible =假, 应用/ JSON; odata.metadata =最小; IEEE754Compatible =真, 应用/ JSON; odata.metadata =最小, 应用/ JSON; odata.metadata =满; odata.streaming = TRUE; IEEE754Compatible =假, 应用/ JSON; odata.metadata =满; odata.streaming = TRUE; IEEE754Compatible =真, 应用/ JSON; odata.metadata =满; odata.streaming =真, 应用/ JSON; odata.metadata =满; odata.streaming = FALSE; IEEE754Compatible =假, 应用程序/ JSON; odata.metadata =满; 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中已经过时了,它是否支持入口有效负载生成?
答案 0 :(得分:1)
自DataLib 6.3.0发布以来,ATOM被禁用,请参阅release note。 实际上,您可以使用ODataLib 6.3之前的版本来生成ATOM有效负载,但V4中的新功能可能不会得到很好的支持。