Невозможно привести объект типа к netcore с помощью msgpack-cli - PullRequest
0 голосов
/ 02 мая 2020

Мы переносили наши проекты на netcore 3.1 и netstandard 2.0, и теперь у нас возникла проблема с генерацией MessagePackSerializer для наших сообщений. Мы получаем такое исключение:

[![Unable to cast object of type 'MsgPack.Serialization.EmittingSerializers.Generated.Parent_ParentClassSerializer3' to type 'MsgPack.Serialization.MessagePackSerializer1\[Parent.ParentClass\]'.][1]][1]

Мы загружаем библиотеки во время выполнения. У нас есть две библиотеки с сообщениями. Одна библиотека имеет перечисление и сообщение, которое использует это перечисление, а вторая библиотека имеет только одно сообщение, которое использует перечисление от первого. Если сериализаторы для типов во второй библиотеке создаются первыми, то сериализаторы для типов в первой библиотеке не могут быть созданы, и мы получаем исключение. Все библиотеки с сообщениями и lib, которые выполняют сериализацию с использованием netstandard2.0, и только lib с точкой входа с использованием netcore3.1.

enter image description here Ошибка исчезает, если мы изменим порядок загрузки (lib с enum загрузите сначала) или используйте net472 для библиотеки точек входа.

Проблема GitHub: https://github.com/msgpack/msgpack-cli/issues/340

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...