序列化时出现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
集,运行它并且工作正常。