Ошибка приведения C # при десериализации - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь десериализовать BinaryFormatter в 32-битном C # exceldna addin, который сериализуется в 64-битном приложении C #.

Когда я вызываю BinaryFormatter.Deserialize (stream), выдается следующее исключение:

[A]System.Tuple`3[System.Collections.Generic.Dictionary`2[System.String,System.Int32],System.Collections.Generic.Dictionary`2[System.String,MyExcelAddin.MyPropertyNames],MyApplication.DataOutput] cannot be cast to 
[B]System.Tuple`3[System.Collections.Generic.Dictionary`2[System.String,System.Int32],System.Collections.Generic.Dictionary`2[System.String,MyExcelAddin.MyPropertyNames],MyApplication.DataOutput]. 

Type A originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. 

Type B originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'.

Типы A и B выглядят одинаково и происходят из одной и той же библиотеки. Есть какие-нибудь подсказки, что здесь происходит не так? Это 64-битная / 32-битная штука?

...