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