【问题标题】:Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)' [duplicate]找不到方法:'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)' [重复]
【发布时间】:2014-06-06 16:56:45
【问题描述】:

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

 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 中,而在其他任何地方都没有。

任何想法

【问题讨论】:

  • 同样的问题。我可以在 IISExpress 中运行我的网站,但是一旦我调试我的 Android 项目,它似乎会覆盖 dll 或类似的东西,我会收到此错误。
  • 我遇到了这个问题。这实际上不是建议的问题的重复;不同的是,这是由提到的 PCL 库 OP 引起的。因为我无法回答这个问题(现在它被标记为 dup),所以我问并回答了另一个问题 here
  • 是的@dbruning 这不是重复的。

标签: c# asp.net-mvc xamarin


【解决方案1】:

在运行 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 作为依赖程序集。

之后它就完美运行了。

希望这会有所帮助。

【讨论】:

  • 这对我有用,我相信这个影响我和我的团队的问题与 Windows 更新有关。
  • 为我的旧 MVC4 应用程序工作,将最后一行更改为 install-package Microsoft.AspNet.WebApi -Version 4.0.30506
【解决方案2】:

我遇到了同样的问题,最后通过运行解决了

Update-Package Newtonsoft.Json –IncludePrerelease

在包管理器控制台中。

我的所有项目都在最新版本上,但在清理/重建问题解决之后。

【讨论】:

  • 是的,我认为这会起作用,但它没有。
  • 这对我有用(我正在使用 VS2015 构建 VS2010 的解决方案)。
  • 谢谢,它解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多