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

我正在运行这段代码:

string serialized = JsonConvert.SerializeObject(somethingToSend); 

它抛出了这个exception:

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)

这个问题的答案“ 在Windows Mobile上有没有可以在C#中读取JSON的库? ”意味着它应该可以工作。

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

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

应用程序运行正常,直到我点击运行上面一行的按钮,所以有人知道我缺少什么吗?

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

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

所以我需要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集,运行它并且工作正常。