Я пишу код 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
определяет его значения?