我一直在尝试使用OData的Display.FormattedValue
的功能,但是我找不到有关如何实现它的任何好资料。我已经在整个OData组织中搜索了代码(formattedvalue
,displayablevalue
没有任何代码)。
我已经阅读了许多链接,包括以下内容:
但是我仍然不知道如何实现它。
有人知道吗?
答案 0 :(得分:0)
答案非常简单。只需遵循the CustomODataFormatter example。在CustomODataSerializerProvider code中找到的AnnotatingEntitySerializer完成添加注释(在本例中为分数)的所有工作。可以轻松调整此代码以创建类似于OData.FormattedValue的内容。
// A custom entity serializer that adds the score annotation to document entries.
public class AnnotatingEntitySerializer : ODataResourceSerializer
{
public AnnotatingEntitySerializer(ODataSerializerProvider serializerProvider)
: base(serializerProvider)
{
}
public override ODataResource CreateResource(SelectExpandNode selectExpandNode, ResourceContext resourceContext)
{
ODataResource entry = base.CreateResource(selectExpandNode, resourceContext);
Document document = resourceContext.ResourceInstance as Document;
if (entry != null && document != null)
{
// annotate the document with the score.
entry.InstanceAnnotations.Add(new ODataInstanceAnnotation("org.northwind.search.score", new ODataPrimitiveValue(document.Score)));
}
return entry;
}
}