不能将动态类型与 asp.net vnext 核心一起使用
cannot use dynamic type with asp.net vnext core
我需要在 ASP.NETt vNext 应用程序中读取并保存 JSON 文件,我想使用 dynamic
变量来存储使用 [=11] 加载的值=],但是当我去编译时,我收到了这个错误信息:
ASP.NET Core 5.0 error CS1980: Cannot define a class or member that utilizes 'dynamic'
because the compiler required type 'System.Runtime.CompilerServices.DynamicAttribute'
cannot be found. Are you missing a reference?
如何解决这个问题?如果我使用 dynamic
,我可以使用 ASP.NET 内核运行应用程序吗?
您需要为 aspnetcore50 框架包含包 Microsoft.CSharp 和 System.Dynamic.Runtime。
这似乎适用于 CoreCLR 版本 1.0.0-beta1:
using Newtonsoft.Json.Linq;
using System;
namespace DynamicTest
{
public class Program
{
public void Main(string[] args)
{
dynamic dobject = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");
Console.WriteLine(dobject.number);
Console.WriteLine(dobject.str);
Console.WriteLine(dobject.array.Count);
Console.ReadLine();
}
}
}
project.json
{
"version": "1.0.0-*",
"dependencies": {
"Newtonsoft.Json" : "6.0.7"
},
"commands": {
"run" : "run"
},
"frameworks" : {
"aspnet50" : { },
"aspnetcore50" : {
"dependencies": {
"System.Console": "4.0.0-beta-22231",
"System.Dynamic.Runtime": "4.0.0-beta-22231",
"Microsoft.CSharp": "4.0.0-beta-22231"
}
}
}
}
我正在解决这个问题,还有一条更没用的错误消息...
命名空间 'System.Data'
中不存在类型或命名空间名称 'Linq'
但是,我 运行 遇到了我的 IIS 服务器 (2012 R2 - IIS 8) 上的问题。我读到的大多数关于这些问题的帖子都是在处理他们的开发环境,而不是他们的网络服务器。
为了解决这两个问题,我不得不将 System.Core.dll 从服务器框架文件夹 (%windows path%\Microsoft.Net\Framework\v4.0.30319) 复制到我的 Web 应用程序 bin 文件夹。
我不清楚为什么这是必要的,但我花了 3 天时间阅读文档和论坛帖子,但没有任何效果。我们只是幸运...
也许这会帮助正在挣扎的其他人。
我需要在 ASP.NETt vNext 应用程序中读取并保存 JSON 文件,我想使用 dynamic
变量来存储使用 [=11] 加载的值=],但是当我去编译时,我收到了这个错误信息:
ASP.NET Core 5.0 error CS1980: Cannot define a class or member that utilizes
'dynamic'
because the compiler required type'System.Runtime.CompilerServices.DynamicAttribute'
cannot be found. Are you missing a reference?
如何解决这个问题?如果我使用 dynamic
,我可以使用 ASP.NET 内核运行应用程序吗?
您需要为 aspnetcore50 框架包含包 Microsoft.CSharp 和 System.Dynamic.Runtime。
这似乎适用于 CoreCLR 版本 1.0.0-beta1:
using Newtonsoft.Json.Linq;
using System;
namespace DynamicTest
{
public class Program
{
public void Main(string[] args)
{
dynamic dobject = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}");
Console.WriteLine(dobject.number);
Console.WriteLine(dobject.str);
Console.WriteLine(dobject.array.Count);
Console.ReadLine();
}
}
}
project.json
{
"version": "1.0.0-*",
"dependencies": {
"Newtonsoft.Json" : "6.0.7"
},
"commands": {
"run" : "run"
},
"frameworks" : {
"aspnet50" : { },
"aspnetcore50" : {
"dependencies": {
"System.Console": "4.0.0-beta-22231",
"System.Dynamic.Runtime": "4.0.0-beta-22231",
"Microsoft.CSharp": "4.0.0-beta-22231"
}
}
}
}
我正在解决这个问题,还有一条更没用的错误消息...
命名空间 'System.Data'
中不存在类型或命名空间名称 'Linq'但是,我 运行 遇到了我的 IIS 服务器 (2012 R2 - IIS 8) 上的问题。我读到的大多数关于这些问题的帖子都是在处理他们的开发环境,而不是他们的网络服务器。
为了解决这两个问题,我不得不将 System.Core.dll 从服务器框架文件夹 (%windows path%\Microsoft.Net\Framework\v4.0.30319) 复制到我的 Web 应用程序 bin 文件夹。
我不清楚为什么这是必要的,但我花了 3 天时间阅读文档和论坛帖子,但没有任何效果。我们只是幸运...
也许这会帮助正在挣扎的其他人。