最近在写.net mvc4.0程序时,出现了以下错误
找不到方法:“Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)”。
经过反复的调试后,发现是Newtonsoft.Json包的版本问题,进行更新后问题解决,下面就对出现此次错误的原因和解决办法做以总结。
我的开发工具是vs2010 项目是mvc4.0
一、原因
在我项目做的差不多的时候,有点空闲时间,所以就想把vs2010深入了解一下,顺便更新了web组件,有的组件已经更新到了vs2012才有的。更新完后又开始整理自己的项目,这是发现程序总是跳到RouteConfig.cs就报错找不到方法:“Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)”。感觉执行不了mvc路由的配置。
二、解决过程
在网上找了半天后,发现可能是Newtonsoft.Json.dll引起的,所以就想用NuGet对其进行新版本的对比,结果发现NuGet也用不了了,好吧,我又到NuGet发布网站对NuGet进行更新,更新完NuGet后,一对比发现我的项目里用到的Newtonsoft.Json是4.5.1,最新版本为4.5.9,当即就进行了更新,最后问题解决。
三、疑惑
在更新了Newtonsoft.Json包后,页面可以正常浏览了,但偶尔还是会出现之前的错误,但这种情况很少,不知道是什么原因。如果大家遇到同样的问题,可以联系我,共同把这个bug钻研透。