我正在调试一个使用JSON.NET进行序列化的C#类库。反序列化期间存在转换错误,因此我使用示例代码http://james.newtonking.com,版本11注释(日期为2012年11月)实现了序列化跟踪。我的代码:
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,Version = 4.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”中加载“Newtonsoft.Json.Serialization.ITraceWriter”类型。
项目References中引用的DLL声称其版本为5.0.3,这就是我想要的。我无法在上面的错误消息中获取Version属性来显示除4.5.0.0之外的任何内容,尽管它可能是指Framework版本号。
我删除了对库的所有引用,清理了解决方案,重新构建,然后通过NuGet重新安装了5.0.3软件包,但是“类型加载”问题仍然存在,错误消息中的4.5.0.0也是如此参考条目属性。我确实有其他项目,现在已经完成,使用早期版本构建,所以这可能是DLL Hell的风格。