簡體   English   中英

不能使用asp.net vnext核心的動態類型

[英]cannot use dynamic type with asp.net vnext core

我需要在ASP.NETt vNext應用程序中讀取並保存JSON文件,我想使用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();
        }
    }
}

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)上遇到了問題。 我讀到的關於這些問題的大多數帖子都是在處理他們的開發環境,而不是他們的Web服務器。

為了解決這兩個問題,我不得不將System.Core.dll從服務器框架文件夾(%windows path%\\ Microsoft.Net \\ Framework \\ v4.0.30319)復制到我的web應用程序bin文件夾中。

我不清楚為什么這是必要的,但我花了3天閱讀文檔和論壇帖子,沒有任何工作。 我們很幸運...

也許這會幫助其他正在掙扎的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM