如何在C#中处理反序列化Avro映射类型

时间:2019-07-11 07:37:18

标签: c# apache-kafka avro confluent-schema-registry confluent-kafka

使用.net融合kafka客户端处理项目,反序列化avro映射类型时出现异常。有没有办法在C#中做到这一点?

该项目正在产生和使用来自kafka的消息。除了使用地图类型外,使用其他任何东西都没有问题。

Avro模式片段:

  {
    "name": "DurationMargins",
    "type": {
      "type": "map",
      "values": {
        "type": "map",
        "values": "double"
      }
    }
  },

Avrogen以此创建以下属性:

private IDictionary<string,IDictionary<string,System.Double>> _DurationMargins;

但是当尝试从Kafka中消耗掉消息时,会收到以下异常:

Avro.AvroException : Unable to find type IDictionary<string,System.Double> in all loaded assemblies in field DurationMargins

1 个答案:

答案 0 :(得分:0)

这是一个问题,因为我们试图使用嵌套地图,如@PanagiotisKanavos。

更改架构以使用记录类型的映射已解决了我的问题。

感谢您的帮助