一尘不染

序列化时JSON .Net Windows Mobile错误

json

我正在运行以下代码:

 string serialized = JsonConvert.SerializeObject(somethingToSend);

并抛出此异常:

MissingMethodException:无法从程序集“ mscorlib,版本= 3.5.0.0,区域性=中性,PublicKeyToken =
969DB8053D3322AC”中加载类型“ System.Runtime.Serialization.StreamingContext”。

这是我的配置:

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

对于此问题的答案“ 是否存在可以在WindowsMobile上使用C#读取JSON的库? ”暗示它应该可以工作。

我在调试时使用连接的真实设备(因此没有仿真器)运行它,之前我已经从这里安装了CAB文件,没有错误:

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

该应用程序运行良好,直到我单击运行以上行的按钮,所以有人知道我缺少了什么吗?

该线程“ Windows CE
5.0的Json.Compact.dll?

”表明我需要安装Windows SDK。考虑到它是在设备本身上运行的,我想这绝对不是解决办法。

另一个建议是从源代码构建,但是像问题的作者一样,我无法将项目文件加载到VS
2008中来做到这一点。我可以创建一个新项目并包含源文件,然后尝试对其进行编译,但在此之前,我想先问一下这是否值得,或者设备上的安装是否还缺少其他内容?也许我应该使用替代版本?


阅读 189

收藏
2020-07-27

共1个答案

一尘不染

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

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

因此,我获取了最新的3.5版本:Json.NET 3.5 Release
8
,更新了我的引用以指向该Newtonsoft.Json.Compact.dll程序集,然后运行它并正常运行。

2020-07-27