C# Json.NET JsonConvert.Serialized对象类型不兼容

C# Json.NET JsonConvert.Serialized对象类型不兼容,c#,json.net,C#,Json.net,当尝试使用JsonConvert.SerializeObject(myObject)序列化对象时,我得到了错误 Error getting value from 'Payload' on Namespace.Request. Type specified in JSON 'Namespace.Request.Payload, Server.Merged, Version=1.0.0.123, Culture=neutral, PublicKeyToken=<token A>' is

当尝试使用
JsonConvert.SerializeObject(myObject)
序列化对象时,我得到了错误

Error getting value from 'Payload' on Namespace.Request.

Type specified in JSON 'Namespace.Request.Payload, Server.Merged, Version=1.0.0.123, Culture=neutral, PublicKeyToken=<token A>' is not compatible with 'Namespace.Request.Payload, Server.Merged, Version=1.0.0.456, Culture=neutral, PublicKeyToken=<token A>'. Path '$type'.
从Namespace.Request上的“有效负载”获取值时出错。
JSON“Namespace.Request.Payload,Server.Merged,Version=1.0.0.123,Culture=neutral,PublicKeyToken=”中指定的类型与“Namespace.Request.Payload,Server.Merged,Version=1.0.0.456,Culture=neutral,PublicKeyToken=”不兼容。路径“$type”。
如您所见,类型是相同的。唯一改变的是类型版本的BuildNumber。在使用ILMerge之前已合并程序集

我想知道这张支票是怎么做的。我尝试将
typenameholling
设置为
None
,但没有效果。我希望这样的检查会发生在反序列化上,但为什么序列化失败呢


我们已经通过一个变通方法解决了这个问题(删除所有Nuget包并重新添加它们)。这似乎是VisualStudio包处理的问题,因为它总是使用旧包。但是我仍然对理解JSON部分感兴趣。

发布您的代码,尽管错误似乎很清楚-您的项目对该类型使用不同的程序集,您应该确保它们都使用相同的类型。如果你通过NuGet软件包添加了该类型,你应该升级它。你读了最后一段吗?是的,我读了。这些组件混淆了。如果没有任何代码,甚至没有完整的异常文本,就不可能进行更深入的研究-类型来自哪里,它为什么有不同的构建编号(不同的项目?、不同的编译时间/)。哪种方法抛出,为什么?有什么内在的例外可以解释问题吗?许多信息包含在异常文本中,异常文本由发出调用堆栈和所有内部异常的
exception.ToString()
-返回,不同的生成号出现是因为Visual Studio没有正确更新依赖项。我的问题是,为什么在序列化过程中会发生这种错误(是的,很明显)。为什么它还要检查两个组件?它在哪里存储第二个程序集?我可以理解这个错误发生在反序列化过程中,而不是序列化过程中。我怎样才能关闭这种行为呢?在任何情况下,完整版本字符串都很重要,而不仅仅是主数字和次数字。在某些情况下,这通常不是一个问题。在您的情况下,尽管app.config似乎不包含这些重定向,但是错误似乎很明显-您的项目使用不同的程序集来处理该类型,您应该确保它们都使用相同的类型。如果你通过NuGet软件包添加了该类型,你应该升级它。你读了最后一段吗?是的,我读了。这些组件混淆了。如果没有任何代码,甚至没有完整的异常文本,就不可能进行更深入的研究-类型来自哪里,它为什么有不同的构建编号(不同的项目?、不同的编译时间/)。哪种方法抛出,为什么?有什么内在的例外可以解释问题吗?许多信息包含在异常文本中,异常文本由发出调用堆栈和所有内部异常的
exception.ToString()
-返回,不同的生成号出现是因为Visual Studio没有正确更新依赖项。我的问题是,为什么在序列化过程中会发生这种错误(是的,很明显)。为什么它还要检查两个组件?它在哪里存储第二个程序集?我可以理解这个错误发生在反序列化过程中,而不是序列化过程中。我怎样才能关闭这种行为呢?在任何情况下,完整版本字符串都很重要,而不仅仅是主数字和次数字。在某些情况下,这通常不是一个问题。在您的情况下,app.config似乎不包含这些重定向