我在Visual Studio中编写C#代码。我在项目中添加了嵌入式DLL,我正在动态加载程序集。我们使用JSON.NET来序列化和反序列化类型为Context.JobDataObj
的对象,该对象在其中一个嵌入式DLL中定义,并在各种程序之间传递DLL。
不幸的是,每当我尝试反序列化时,都会出现以下错误:
JSON中指定的类型 'Context.JobDataObj,HPMContext, 版本= 1.0.0.0,文化=中立, PublicKeyToken = null'不兼容 使用'Context.JobDataObj,HPMContext, 版本= 1.0.0.0,文化=中立, 公钥=空”。
我查找了JSON.NET源代码中的错误,错误是指IsAssignableFrom
返回false
...当我将DLL移出项目时,seralization和deseralization就像一个魅力。
更新:
我已经设法引入JSON.NET源代码并对其进行调试......显然,它是否使用嵌入式DLL之间的唯一区别是IsAssignableFrom的返回值:
if(objectType!= null&&!objectType.IsAssignableFrom(specifiedType))
objectType
在specifiedType
的各个方面都是相同的,我检查了它的所有程序集,类型,接口,成员等等。有谁知道IsAssignableFrom
如何确定它的值?