我正在尝试将 ODataLib 用于 OData 协议 V4 (Microsoft.OData.Core) 以生成 Atom 格式的有效负载。我确保 Content-Type 和 Accept 标头引用 application/atom+xml,但是对 CreateODataEntryWriter 的调用总是会导致异常:
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;odata.
这是导致异常的示例代码:
var writerSettings = new ODataMessageWriterSettings();
writerSettings.SetContentType(ODataFormat.Atom);
var messageWriter = new ODataMessageWriter(request, writerSettings, model);
var entryWriter = messageWriter.CreateODataEntryWriter();
我检查了库代码,发现 ODataMessageWriterSettings 有一个属性 EnableAtom 但是这个属性被声明为内部的,并且它似乎不是从库内部设置的,所以它看起来总是错误的。我知道 Atom 格式在 OData V4 中已过时,是否支持生成条目有效负载?