我需要在ASP.NETt vNext应用程序中读取并保存JSON文件,我想使用dynamic
变量来存储使用JSON.net加载的值,但是当我去编译时收到此错误消息:
ASP.NET Core 5.0错误CS1980:无法定义使用
'dynamic'
的类或成员,因为无法找到编译器所需的类型'System.Runtime.CompilerServices.DynamicAttribute'
。你错过了参考吗?
怎么能解决这个问题?如果我使用dynamic
,我可以使用ASP.NET核心运行应用程序吗?
答案 0 :(得分:5)
您需要为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"
}
}
}
}
答案 1 :(得分:2)
我正在解决这个问题,还有一个更有用的错误信息......
名称空间'System.Data'
中不存在类型或命名空间名称“Linq”但是,我在IIS服务器(2012 R2 - IIS 8)上遇到了问题。我读到的关于这些问题的大多数帖子都是在处理他们的开发环境,而不是他们的Web服务器。
为了解决这两个问题,我不得不将System.Core.dll从服务器框架文件夹(%windows path%\ Microsoft.Net \ Framework \ v4.0.30319)复制到我的web应用程序bin文件夹中。
我不清楚为什么这是必要的,但我花了3天时间阅读文档和论坛帖子,但没有任何工作。我们很幸运...
也许这会帮助其他正在挣扎的人。