我定义了关注自己的提供者:
public class CustomEntityTypeSerializer : ODataEntityTypeSerializer
{
public CustomEntityTypeSerializer(ODataSerializerProvider serializerProvider)
: base(serializerProvider)
{}
public override Microsoft.OData.Core.ODataEntry CreateEntry(SelectExpandNode selectExpandNode, EntityInstanceContext entityInstanceContext)
{
Microsoft.OData.Core.ODataEntry entry = base.CreateEntry(selectExpandNode, entityInstanceContext);
entry.InstanceAnnotations.Add(new ODataInstanceAnnotation("org.test", new ODataPrimitiveValue("test")));
return entry;
}
}
我无法从我的webapi应用程序的http响应中获取上面的实例注释。 为什么会这样?
ps:我使用来自aspnetwebstack.codeplex.com的最新版master分支的System.Web.OData lib。使用odata.metadata = full接受标头是启用
答案 0 :(得分:1)
您可以检查回复标题是否包含:
Preference-Applied: odata.include-annotations="*"
如果没有,请尝试在请求标头中传递以下Prefer标头。让服务处理此标头并返回上面的Preference-Applied标头的响应。
Prefer: odata.include-annotations="*"
ODL编写器应该在Preference-Applied标头中使用odata.include-annotations的设置编写实例注释