找不到方法:’Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)’

我有一个ASP.net MVC应用程序,它使用由xamarin应用程序共享的可移植类库。 当我的Web应用程序立即启动时,它会抛出此错误:

Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'. 

我正在使用Structure Map MVC nuget包,它工作正常,直到我引用了PCL库。

它在这行代码中出错:

 GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container); 

我认为它与PCL类和MVC有关,它们都引用了JSON.net。 有想法该怎么解决这个吗? 我最终重建了我的机器,以确保只有这个版本在GAC中,而不是在其他地方。

有任何想法吗

在运行Scott Allen关于MVC4基础知识的伟大的Pluralsight课程的练习文件时,我遇到了同样的问题。 使用预发布开关更新Newtonsoft.Json对我来说不起作用。 您必须重新安装WebApi包。 在程序包管理器控制台中使用以下命令:

 uninstall-package Microsoft.AspNet.WebApi uninstall-package Microsoft.AspNet.WebApi.webhost uninstall-package Microsoft.AspNet.WebApi.core uninstall-package Microsoft.AspNet.WebApi.Client uninstall-package Newtonsoft.Json install-package Microsoft.AspNet.WebApi 

我首先想到,卸载Microsoft.AspNet.WebApi也会负责卸载webhost,核心和客户端 – 但这不起作用。 然而,重新安装Microsoft.AspNet.WebApi可以提供正确版本的Newtonsoft.Json作为依赖程序集。

之后它完美地运作了。

希望这可以帮助。

我有同样的问题,最后通过运行解决

 Update-Package Newtonsoft.Json –IncludePrerelease 

在包管理器控制台中。

它出现了我的所有项目都在最新版本,但在Clean / ReBuild问题解决后。