Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中处理反序列化avro映射类型#_C#_Apache Kafka_Avro_Confluent Schema Registry_Confluent Platform - Fatal编程技术网

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

C# 如何在C中处理反序列化avro映射类型#,c#,apache-kafka,avro,confluent-schema-registry,confluent-platform,C#,Apache Kafka,Avro,Confluent Schema Registry,Confluent Platform,使用.net confluent kafka客户端处理项目,在反序列化avro映射类型时出现异常。有没有办法在c#中做到这一点 该项目正在制作和使用来自卡夫卡的信息。除了地图类型之外,在消费任何东西方面都没有问题 Avro架构代码段: { "name": "DurationMargins", "type": { "type": "map", "values": { "type": "map", "values": "do

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

该项目正在制作和使用来自卡夫卡的信息。除了地图类型之外,在消费任何东西方面都没有问题

Avro架构代码段:

  {
    "name": "DurationMargins",
    "type": {
      "type": "map",
      "values": {
        "type": "map",
        "values": "double"
      }
    }
  },
Avrogen从此创建以下属性:

private IDictionary<string,IDictionary<string,System.Double>> _DurationMargins;
private IDictionary\u DurationMargins;
但是,当尝试使用卡夫卡的消息时,会收到以下异常:

Avro.AvroException : Unable to find type IDictionary<string,System.Double> in all loaded assemblies in field DurationMargins
Avro.AvroException:无法在字段DurationMargins中的所有加载程序集中找到IDictionary类型

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

更改模式以使用记录类型的映射已修复我的问题


感谢您的帮助

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

更改模式以使用记录类型的映射已修复我的问题


感谢您的帮助

为什么不能反序列化到适当的模型类中?发布您的代码。您是如何尝试反序列化数据的
IDictionary
是一个接口,而不是一个可以实例化的类,还可以发布由
exception.ToString()返回的完整异常文本。这包括调用堆栈和任何内部异常,它们精确地显示了引发异常的方法。Github上提供了和.NET源代码。您可以检查抛出的方法以了解它所期望的是什么,并且Avro代码似乎无法处理嵌套映射。为什么要使用嵌套贴图?如果要存储复杂对象(JSON或非JSON),可以使用记录。检查@PanagiotisKanavos是的,问题似乎是嵌套地图。我已将其更改为记录映射,并且正在成功地反序列化。为什么不能反序列化为适当的模型类?请发布代码。您是如何尝试反序列化数据的
IDictionary
是一个接口,而不是一个可以实例化的类,还可以发布由
exception.ToString()返回的完整异常文本。这包括调用堆栈和任何内部异常,它们精确地显示了引发异常的方法。Github上提供了和.NET源代码。您可以检查抛出的方法以了解它所期望的是什么,并且Avro代码似乎无法处理嵌套映射。为什么要使用嵌套贴图?如果要存储复杂对象(JSON或非JSON),可以使用记录。检查@PanagiotisKanavos是的,问题似乎是嵌套地图。我已将其更改为记录映射,并成功地反序列化了。