msgpack-cli icon indicating copy to clipboard operation
msgpack-cli copied to clipboard

Unable to cast object of type on netcore

Open littleAnarchy opened this issue 4 years ago • 1 comments

Hello. We have been transferring our projects to netcore 3.1 and netstandard 2.0 and now we are experiencing an issue with generating MessagePackSerializer<T> for our messages. We are receiving such exception: Unable to cast object of type 'MsgPack.Serialization.EmittingSerializers.Generated.Parent_ParentClassSerializer3' to type 'MsgPack.Serialization.MessagePackSerializer1[Parent.ParentClass]'.`

We are loading libraries in runtime. We have two libs with messages. One lib has enum and message which uses this enum, and the second lib has only one message which uses enum from first. If serializers for the types in the second library is created first, then serializers for types in the first library can't be created and we are receiving the exception. All libs with messages and lib that performing serialization using netstandard2.0 and only lib with entry point using netcore3.1.

image

Bug disappears if we change loading order (lib with enum load first) or use net472 for the entry point library.

MsgPackExceptionExample.zip

littleAnarchy avatar May 01 '20 11:05 littleAnarchy

tried netcore2.0 - same bug

littleAnarchy avatar May 01 '20 12:05 littleAnarchy