Cas*_*ash 4 json.net linqbridge
我使用JSON.NET它具有LinqBridge在.dll文件合并LinqBridge允许LINQ到从.NET 2访问如果我尝试使用LINQ的,甚至进口后System.Linq,我收到以下错误:
Error 13 Could not find an implementation of the query pattern for source type 'int[]'. 'Where' not found. Are you missing a reference to 'System.Core.dll' or a using directive for 'System.Linq'? C:\Users\chrisl\Desktop\SoftTokens\Windows Desktop Soft-Token\Program.cs 27 25 WindowsSoftToken
Run Code Online (Sandbox Code Playgroud)
如果我尝试包含LinqBridge,那么因为JSON.NET已经包含它,我收到此警告.另外,我已经两次包含相同的组件,这是低效的:
Warning 2 The predefined type 'System.Action' is defined in multiple assemblies in the global alias; using definition from 'c:\Users\chrisl\Desktop\SoftTokens\Windows Desktop Soft-Token\libs\Newtonsoft.Json.Net20.dll' WindowsSoftToken
Run Code Online (Sandbox Code Playgroud)
如果我Newtonsoft.Json.Net20在对象浏览器中浏览,我看到即使在我选择之后,System.Linq也显示为空Show hidden types and methods.
是否可以从JSON.NET DLL访问Linq或抑制错误消息?
在LINQBridge程序集中提供LINQ查询运算符的Enumerable静态类仍在System.Linq命名空间中公开.
您仍然需要按照第一条错误消息中的指示使用System.Linq的using指令.
更新:
事实证明,合并到Newtonsoft.Json.Net20.dll的LINQBridge程序集已经"内化",我最初没有注意到.这意味着您的代码无法引用编译器"实现查询模式"所需的Enumerable类型.因此,您必须自己引用LINQBridge程序集,但是您会收到有关重复定义的警告,如您所述.
您可以通过转到项目属性的"构建"选项卡来禁用重复的类警告,并在"抑制警告:"框中输入"1685".
但更好的方法是从源代码构建自己的JSON.net版本而不在LINQBridge中合并.
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |