InstanceAnnotation进入OData响应

时间:2014-05-07 13:47:13

标签: asp.net-web-api odata

我定义了关注自己的提供者:

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接受标头是启用

1 个答案:

答案 0 :(得分:1)

您可以检查回复标题是否包含:

Preference-Applied: odata.include-annotations="*"

如果没有,请尝试在请求标头中传递以下Prefer标头。让服务处理此标头并返回上面的Preference-Applied标头的响应。

Prefer: odata.include-annotations="*"

ODL编写器应该在Preference-Applied标头中使用odata.include-annotations的设置编写实例注释

相关问题