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

时间:2020-12-29 18:31:26

标签: .net odata type-safety value-type

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

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

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

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

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

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

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

0 个答案:

没有答案