2014-05-07 44 views
2

我定義遵循自己的供應商:InstanceAnnotation到的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頭=全額使

回答

1

您可以檢查響應的頭包含:

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

如果沒有,嘗試通過在你的請求頭不想頭以下。讓服務處理這個頭,然後用上面的Preference-Applied頭返回響應。

Prefer: odata.include-annotations="*" 

ODL作家應該寫實例說明與odata.include批註的偏好施加頭

+0

我已經試過_odata.include的註解=設置「*」 _和_odata.include的註解= * _Prefer_頭的值,但沒有效果。響應標頭也沒有_Preference-Applied_標頭。 – iremezoff

+0

好的,這意味着服務不處理首選標題自動。你有權在web-api服務中設置響應標題嗎?除非在響應頭中設置優先應用標頭(無論您或服務做什麼),否則實例標註將不會寫入... – Maya

+0

是的,我有權利,我可以很好地控制一個proj – iremezoff

相關問題