序列化时出现JSON .Net Windows Mobile错误

时间:2012-07-02 14:39:37

标签: c# .net json json.net windows-mobile-6

我正在运行这段代码:

 string serialized = JsonConvert.SerializeObject(somethingToSend);

它引发了这个例外:

  

MissingMethodException:无法从程序集'mscorlib,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 969DB8053D3322AC'加载类型'System.Runtime.Serialization.StreamingContext'。

这是我的配置:

  • Visual Studio 2008(包含所有最新的服务包等)
  • 针对Windows Mobile 6 .Net 3.5的智能设备项目
  • Json DotNet版本4.5第7版(从zip中的WindowsPhone文件夹引用DLL)

这个问题“Is there a library to read JSON in C# on Windows Mobile?”的答案暗示它应该有效。

我在调试中运行它,附加了真实设备(所以没有模拟器)我之前从这里安装了CAB文件而没有错误:

  

C:\ Program Files(x86)\ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ NETCFv35.wce.armv4.cab

应用程序运行良好,直到我点击运行上面一行的按钮,所以有人知道我错过了什么吗?

这个帖子“Json.Compact.dll for Windows CE 5.0?”表示我需要安装Windows SDK,我有。鉴于它在设备上运行,我想这无论如何都不会是修复。

另一个建议是从源代码构建,但是像问题的作者一样,我无法将项目文件加载到VS 2008中来执行此操作。我可以创建一个新项目并包含源文件并尝试将其编译,但在我这样做之前,我想我会问这里是否值得,或者设备上的安装中是否还有其他东西丢失?或者也许我应该使用备用构建?

1 个答案:

答案 0 :(得分:9)

所以我需要RTFM!自述文件说:

  

Microsoft在Visual Studio 2010中停止了对Compact Framework的支持。   对于Compact Framework 3.5 build下载Json.NET 3.5。

所以我抓住了最新的3.5版本:Json.NET 3.5 Release 8,更新了我的引用以指向Newtonsoft.Json.Compact.dll程序集,运行它并且运行正常。