Как правильно использовать JSON.NET при десерализации из встроенной DLL? - PullRequest
2 голосов
/ 09 мая 2011

Я пишу код C # в Visual Studio.Я добавляю встроенную DLL в проект, динамически загружаю сборки.Мы используем JSON.NET для сериализации и десериализации объектов с типом Context.JobDataObj, который определен в одной из встроенных библиотек DLL, и передачи библиотек между различными программами.

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

Тип, указанный в JSON 'Context.JobDataObj, HPMContext, Версия = 1.0.0.0, Культура = нейтральный,PublicKeyToken = null 'несовместим с «Context.JobDataObj, HPMContext, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null'.

Я посмотрел на ошибку в исходном кодев JSON.NET ошибка относится к IsAssignableFrom, возвращающему false ... Когда я перемещаю DLL из проекта, разделение и десерализация работает как чудо.

ОБНОВЛЕНО:

Мне удалось получить исходный код JSON.NET и отладить его ... очевидно, единственная разница между тем, использует ли он встроенную DLL, а не является возвращаемым значением IsAssignableFrom в строке:

if (objectType! = Null &&! ObjectType.IsAssignableFrom (указанный тип))

objectType во всех отношениях равен specifiedType, я проверил все его сборки, типы, интерфейсы, члены и т. д. и т. д.Кто-нибудь знает, как IsAssignableFrom определяет его значения?

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