【问题标题】:define a global custom serializer for a genericc type in RavenDB在 RavenDB 中为泛型类型定义全局自定义序列化程序
【发布时间】:2011-08-22 13:14:50
【问题描述】:

您好,我正在尝试使用 RavenDB 序列化 F# 集合。只要您坚持使用正常的 .net 集合,这没有问题。 但我也想序列化 F#-Lists、Tuples 甚至 Sets。

现在据我了解,我可以用一些属性来装饰我的 F# 对象,以连接一些 Json.net 功能(但我也不完全知道如何)。

但我曾希望有一种方法可以告诉 RavenDB 进行序列化 - 让我们以某种方式说所有 List (准确地说 - 只需将它们作为 IEnumerable/Seq 处理并在构造函数)

这可能吗?如果可以,您能具体解释一下吗?

【问题讨论】:

  • 不是答案,但请注意您将无法存储有区别的联合。您可能想看看 Robert Pickering 的 RavenDB 序列化器,用于区分联合以及他是如何做到的。
  • 在哪里可以找到它? (我想我看到了这个 - 你必须在代数数据类型中添加一些成员才能工作 - 我猜这是/a Id - 字段),但遗憾的是,这不是答案......但谢谢
  • 我觉得 Ayende 似乎在改进对 F# 的支持,而上次我试图让 Robert 的用于区分联合的加载项我无法让它工作。也许最好等待 RavenDB 的内置支持。

标签: serialization collections f# ravendb


【解决方案1】:

您可以通过提供自己的 JsonConverter 类来修改序列化程序,并通过为 Conventions.CustomizeSerializer 函数提供 lambda 将其注册到 RavenDB 序列化程序。

【讨论】:

  • 谢谢 - 有没有这方面的例子?我查看了 Json.net 的 API 文档——它一点也不差,但也不是很深入
  • 这里有一个:ravendb.net/faq/polymorphism。本周晚些时候会有更多真实的例子。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2016-07-09
相关资源
最近更新 更多