升级到 .NET 4.0 后 C# 动态 JObject 不起作用

Posted

技术标签:

【中文标题】升级到 .NET 4.0 后 C# 动态 JObject 不起作用【英文标题】:C# dynamic JObject not working after upgrading to .NET 4.0 【发布时间】:2021-04-14 19:55:27 【问题描述】:

我想开始在旧的 C# 项目中使用动态,因此我将目标设置为 framework 为 4.0,并包含参考 Microsoft.CSharp。

当我尝试创建一个动态 JObject 并为其分配一个值时,它给了我一个例外:

"Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “Newtonsoft.Json.Linq.JObject”不包含定义 '测试'

这是抛出异常的那一行:

dynamic ree = new JObject();

ree.test = true;

在我的 C# xamarin 项目中,它创建一个布尔类型的 JToken,值为 true 并将其分配给 ree

【问题讨论】:

那么你从.NET 4.0升级到了哪个版本? @dbc 我从 3.5 升级到 4.0 【参考方案1】:

我通过重新安装 nuget 包解决了这个问题,因为它可能没有在旧版本中实现此功能。

【讨论】:

以上是关于升级到 .NET 4.0 后 C# 动态 JObject 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PInvoke在 2.0 3.0的时候正常 升级到4.0后出错。

SQL Server CE 数据库升级 3.5 到 4.0 C#

.net 4.0 中的特性总结:dynamic

升级到 Skype for Business 2015 后 UCMA 4.0 应用程序中的 TLSFailureException

C# 4.0中的动态类型和动态编程

升级到 .NET 4.5 后获取 AddressAlreadyInUseException