我正在调试一个使用 JSON.NET 进行序列化的 C# 类库。反序列化过程中出现转换错误,因此我使用示例代码http://james.newtonking.com,Release 11 说明(日期为 11/2012)实现了序列化跟踪。我的代码:
ProcessPlan p = ProcessPlan.TestPlan();
ITraceWriter traceWriter = new MemoryTraceWriter();
JsonConvert.SerializeObject(p, new JsonSerializerSettings { TraceWriter = traceWriter });
Console.WriteLine(traceWriter);
当此代码运行时,我收到此消息:
CPlanAppV9.UnitTest.TestRepository.SaveLoad:System.TypeLoadException:无法从程序集“Newtonsoft.Json,版本=4.5.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”加载类型“Newtonsoft.Json.Serialization.ITraceWriter”。
项目 References 中引用的 DLL 声称其版本为 5.0.3,这正是我想要的。我无法在上述错误消息中获取 Version 属性来显示除 4.5.0.0 之外的任何内容,尽管它可能指的是框架版本号。
我删除了对库的所有引用,清理了解决方案,重新构建,然后通过 NuGet 重新安装了 5.0.3 包,但“类型加载”问题仍然存在,错误消息和引用条目属性中的 4.5.0.0 也是如此. 我确实有其他项目,现在已经完成,是用早期版本构建的,所以这可能是 DLL Hell 的味道。