不能将动态类型与 vnext 核心一起使用 asp.net



我需要在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 天时间阅读文档和论坛帖子,没有任何效果。 我们只是很幸运...

也许这会帮助其他正在挣扎的人。

相关内容

  • 没有找到相关文章

最新更新