如何在 OData 中创建自定义值类型?

问题描述

我有一个 OData API,想知道添加自定义值类型/强类型对象的支持以便在序列化、反序列化和元数据生成过程中识别它的正确方法是什么。

比如说我有一个自定义Temperature 类型,它能够解析像 32°F50F(无度数符号)、40°C(摄氏度)这样的字符串等等。根据值和比例,在类中设置一个内部值,以便以后可以与其他 Temperature 实例进行比较。

现在,我希望能够在我的 OData 模型中公开 Temperature 类型的属性,并使其表现得像自定义字符串类型。应该

  • 能够在发布数据时从文本表示中反序列化
  • 能够在获取数据时序列化为文本表示
  • 能够以字符串形式在过滤器表达式中使用
  • 能够用作组合键的一部分,或作为主键本身

我无法在 OData .Net 库中找到任何明确的扩展点,也没有听说 oasis 规范中有任何此类支持

我知道 .Net 中的一些内置类型在本地实现了此类支持,例如 DateTime 或空间类型。

有没有办法像这样添加自定义类/结构的支持,如果是这样,如何进行?当前未在本机处理的 .Net 类型也是如此,例如 Uri

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)