- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建使用 Newtonsoft.Json 的类型提供程序。提供的构造函数接受 JObject
:
let constr = ProvidedConstructor([ProvidedParameter("json",typeof<JObject>)])
constr.InvokeCode <- fun args ->
<@@
let jObject = %%args.[0]:JObject
jObject
@@>
客户端代码:
type ProvidedType = MyProvider<"source.file">
let json = JObject.Parse(str)
let objct = ProvidedType("""{ "name" = "foo bar" }""")
它在设计时失败并出现以下错误:
Type mismatch when splicing expression into quotation literal. The type of the
expression tree being inserted doesn't match the type expected by the splicing
operation.
Expected 'Newtonsoft.Json.Linq.JObject', but received type
'Newtonsoft.Json.Linq.JObject'.
Consider type-annotating with the expected expression type, e.g.,
(%% x : string) or (%x : string).
调试类型提供程序时,我可以看到有两个版本的 Newtonsoft.Json.dll:来 self 项目中 nuget 下载位置的版本 6.0.3.17227 和来自 C:\Program Files\Common Files\的版本 4.5.11.15520 Microsoft Shared\Visual Studio\12.0\Newtonsoft.Json.dll。
后者显然是由 Visual Studio 2013 Update 2 for Json 编辑器加载的。
客户端和类型提供程序程序集都指定版本重定向:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.3.0" />
</dependentAssembly>
我该如何解决?
编辑:
事实证明,仅仅摆脱 Json.NET 的 VS 版本并不是一个好的解决方案。 VS 在开始时抛出异常,它会隐藏,直到您尝试使用不同的帐户登录。我什至不想尝试猜测其背后的逻辑,简短的回答是 - 不要乱用 VS。
对于Type Provider,解决方法是在TP提供的所有方法中将JObject替换为字符串,并在实现中将其解析为JObject。
希望 VS 团队能为此做点什么。
最佳答案
检查 Visual Studio 目录中的 NewtonSoft.Json 是否实际应该存在。我曾一度尝试开发类型提供程序时感到非常痛苦,直到我意识到在 3 个月前的几天里,NuGet 一直在解压缩我安装到 C:\Program Files\Common Files\Microsoft Shared\Visual 的所有依赖项Studio\12.0\- 那些在类型提供程序加载任何内容之前就已加载。作为(非常小的)安慰奖,如果您遇到与我相同的问题,TP 将在 FSI/编译代码中运行——只是不在 Visual Studio 中。
关于f# - 从 TypeProvider 引用 Newtonsoft.Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041013/
我在谷歌上花了很长时间,所以如果这是一个简单的修复请原谅我,但我找不到任何与 C# 中这个特定问题的修复相关的内容。 当尝试使用以下代码时,出现此错误: string obj = JsonConver
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我正在尝试重新创建这个 json: { "request": { " TestRequest": { "OrderID": {
我正在测试我的 Web API。模拟数据我有这个: var objs = ((JArray)JsonConvert.DeserializeObject("{ \"PrintId\":10,\"Head
目前正在尝试使用 fixer.io API 在 C# 中创建货币转换。 我在从 Twitter API 解析 JSON 时使用了与下面类似的方法,并且没有任何问题,我不完全确定这里发生了什么。 API
我正在尝试建立 Mike Jansen 的 JIRA REST Client ,我正在尝试提取 JIRA 版本信息。我是 JSON 的新手,所以我不确定这只是格式问题还是什么。 调试时,我有以下标记:
我正在尝试使用 将对象动态序列化到即时窗口中 Newtonsoft.Json.JsonConvert.SerializeObject(myObj); 但是我得到以下错误 The type 'Newto
我无法在 Visual Studio 2013 中构建解决方案。 这发生在我将我的 JSON.NET 包更新到 6.0.1 之后。在此之前,它就像一个魅力。 有什么想法吗? PS:这可能是关于 OWI
当有如下代码时 var TermSource = token.Value("annotations") .Values("Term Source") .FirstOrDefault
我需要将选中的复选框代码从 JavaScript 传递给 C#。我能够通过 JSON 发送代码。我的 JSON 值以 JArray 的形式出现。我在标题中得到了异常(exception)。 JSON:
注意:解决重定向问题后,我遇到了另一个问题,即出现错误“无法将 Newtonsoft.Json.Linq.JArray 转换为 Newtonsoft.Json.Linq.JToken”。因此,在我的回
我有以下简单的 POCO: public class ApiKey { public ApiKey(string key, string owner, List claims = nu
我查过这个问题,但我没有看到太多答案,显然没有一个有帮助,否则我不会问。我是 .NET 新手。 我的本地环境是Win7,Microsoft Virtual Web Developer 2010 Exp
好的-我已经将这个问题打了几个小时。是时候寻求帮助了。 我刚刚将Web应用程序项目升级到ASP.NET MVC 4 RC和新的WebApi。 我的Web api方法现在返回EMPTY json“{}”
我想忽略类中的某些属性,但出于多种原因我想保留类 POCO。因此我不想引入对 Json.NET 的依赖,也不想使用 JsonIgnoreAttribute。 有没有办法自定义契约(Contract)解
我正在尝试修复我编写的 WinForms 程序中的错误;我正在解析一个 JSON 字符串,然后将一些结果放入各种变量中。 有时,JSON 的特定元素不存在(出于真正的原因),因此我尝试使用以下代码来处
我只是尝试使用 C# 中的 Newtonsoft JSON 库将文件中的一些 JSON 反序列化为对象列表。以下是 MeetingFile.txt 文件的内容: [ { "People":
这是一个非常奇怪的错误发生。我有这些对象: public class Mobile_SettingModels { public string Token { get; set; }
我粘贴了 http://www.codeproject.com/Tips/789481/Bridging-the-Gap-between-Linqpad-and-Visual-Studio 中的代码进
这个问题在这里已经有了答案: Can I optionally turn off the JsonIgnore attribute at runtime? (3 个答案) 关闭 4 年前。 我目前正
我是一名优秀的程序员,十分优秀!