Как обрабатывать десериализацию типа карты авро в C # - PullRequest
0 голосов
/ 11 июля 2019

Работа над проектом с использованием клиента .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;

Но при попытке использовать сообщения из Кафки, получите следующее исключение:

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

1 Ответ

0 голосов
/ 11 июля 2019

Это была проблема, потому что мы пытались использовать вложенные карты, как @ PanagiotisKanavos.

Изменение схемы для использования карты типов записей устранило мою проблему.

Спасибо за помощь

...