【发布时间】:2011-10-27 08:38:30
【问题描述】:
我正在使用 System.Web.Helpers.Json 将一些 JSON 反序列化为 NET 4 中的 dynamic。以下行因此错误而失败:TypeInitializationException: Attempt by method 'System.Web.Helpers.Json..cctor()' to access method 'System.Web.Helpers.Json.CreateSerializer()' failed.
var json = Json.Decode(response);
response 是冗长但有效的 JSON。这可能是什么问题?我已经尝试LINQPad 使用简短的手工 JSON 并且它有效。这是某种配置问题吗?
[编辑]
这是实际的示例 JSON。看起来内容几乎无关紧要。当它在全新的控制台应用程序或 LINQPad 中运行时,它会按预期工作。但是,如果您尝试从全新的 Windows 窗体应用程序运行相同的代码,则会出现上述错误。
var json = Json.Decode("{\"r\":{\"0\":{\"id\":\"2\"},\"1\":{\"id\":\"33\"}}}");
[编辑2]
实际上,这与项目类型无关。如果正在调试项目,则会引发异常。如果只是简单地运行,则不会发生异常。奇怪吧?
【问题讨论】:
-
请显示 JSON 和您用于反序列化它的代码。
-
我已对问题进行了编辑,以包含示例 JSON 和有关如何重现的附加说明。
-
TypeInitializationException是否存在 InnerException?它可能会为您提供有关失败原因的更多信息。 -
我遇到了同样的问题。 @akton:我将在下面添加我的堆栈跟踪作为“答案”。
-
VS 哪个版本?如果你有多个不匹配版本的 VS 和 .net 运行时,它会正常运行,但会调试失败。