2015-01-09 19 views
8

Ich muss lesen und speichern Sie eine JSON-Datei in einer ASP.NETt vNext-App, und ich möchte eine dynamic Variable verwenden, um den Wert zu speichern, geladen mit JSON.net, aber wenn ich zu kompilieren gehen erhielt ich diese Fehlermeldung:kann dynamischen Typ mit asp.net vnext Kern nicht verwenden

ASP.NET Core 5.0 Fehler CS1980: Es kann keine Klasse oder Mitglied definieren, die 'dynamic', da der Compiler benötigt Typ verwendet 'System.Runtime.CompilerServices.DynamicAttribute' kann nicht gefunden werden. Vermissen Sie eine Referenz?

Wie kann dieses Problem lösen? Wenn ich dynamic verwende, kann ich eine Anwendung mit ASP.NET Core ausführen?

Antwort

5

Sie müssen die Pakete Microsoft.CSharp und System.Dynamic.Runtime für den aspnetcore50 Rahmen aufzunehmen.

Das ist für mich mit CoreCLR Version 1.0.0-beta 1 scheint zu funktionieren:

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(); 
     } 
    } 
} 

Die 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" 
      } 
     } 
    } 
} 
+0

danke, scheint auch für mich zu arbeiten. –

2

Ich kämpfe um dieses Problem zusammen mit einem noch weniger nützlichen Fehlern Nachricht ...

der Typ oder Namespace-Name 'Linq' existiert nicht im Namensraum 'System.Data'

Aber ich stieß auf meinem IIS Server (2012 R2 - IIS 8) auf das Problem. Die meisten Beiträge, die ich zu diesen Problemen gelesen habe, betrafen ihre Entwicklungsumgebung, nicht ihren Webserver.

Um beide Probleme zu lösen, musste ich die System.Core.dll, aus dem Server-Framework-Ordner (% windows Pfad% \ Microsoft.Net \ Framework \ v4.0.30319), in meine Web-Anwendungen bin-Ordner kopieren .

Ich bin mir nicht klar, warum dies notwendig war, aber ich habe 3 Tage Dokumentation und Forum-Beiträge durchlesen, und nichts aus arbeitete dort. Wir haben gerade Glück gehabt ...

Vielleicht hilft das jemand anderem, das kämpft.

Verwandte Themen