2013-02-07 17 views
5

Microsoft Visual Studio 2010 Ultimate (wersja 10.0.40219.1 SP1Rel).Nie można znaleźć nazwy typu lub przestrzeni nazw "dynamiczny".

wersji Microsoft .NET Framework 4.5.50709 SP1Rel

Mam kompilacji na .NET Framework 4.0.

Ilekroć próbuję użyć var ​​lub dynamicznych typów danych, pojawia się błąd pokazany w temacie:

typu lub nazwa przestrzeni nazw „dynamiczne” nie została znaleziona.

Nie można znaleźć typu lub przestrzeni nazw "var".

Próbuję użyć JsonFX do parsowania danych, które otrzymuję od innej usługi internetowej. Czasami dane będą stanowić "wiadomość", a czasami będą oznaczać "ścieżkę". Zgodnie z tym JsonFx Documentation, powinienem być w stanie podążać za przykładem "Serializuj do/z typów dynamicznych (domyślnie dla .NET 4.0):"

Dodałem stronę do mojej strony o nazwie test. Poniższy blok kodu jest od Test.aspx.cs Kod Próbuję użyć to:

using System; 
using System.Text; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using JsonFx; 
using JsonFx.Json; 
using Microsoft.CSharp; 

public partial class Test : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     string Data = ""; 
     Data = @"[{""meta"":{""account"":""orbitinte"",""event"":""track""},""payload"":{""id"":410827200397312213,""id_str"":""410827200397312213"",""asset"":""359551031717134"",""recorded_at"":""2013-02-07T15:59:04Z"",""received_at"":""2013-02-07T16:00:37Z"",""fields"":{}}},{""meta"":{""account"":""orbitinte"",""event"":""track""},""payload"":{""id"":410827200409895125,""id_str"":""410827200409895125"",""asset"":""359551031717134"",""recorded_at"":""2013-02-07T16:00:04Z"",""received_at"":""2013-02-07T16:00:37Z"",""fields"":{}}}]"; 
     Data = @"[{""meta"":{""account"":""orbitinte"",""event"":""message""},""payload"":{""id"":410865901198377173,""thread_id"":null,""parent_id"":410865891354345685,""id_str"":""410865901198377173"",""thread_id_str"":"""",""parent_id_str"":""410865891354345685"",""type"":""message"",""channel"":""com.mdi.services.adminProtocol"",""sender"":""359551031717134"",""recipient"":""@@[email protected]@"",""asset"":""359551031717134"",""b64_payload"":""eyJlcnJvciI6ImNhbm5vdCBwYXJzZSBjb21tYW5kIn0="",""recorded_at"":""2013-02-07T18:34:25Z"",""received_at"":""2013-02-07T18:34:24Z""}}]"; 


     JsonReader Reader = new JsonReader(); 
     dynamic Output = Reader.Read(Data); 

     Notifications oNotifications = new Notifications(); 
     oNotifications.ProcessNotifications(Data); 
    } 
} 

W pliku web.config:

<system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v4.0"/> 
     <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
    </system.codedom> 

jestem całkiem nowy, C# i asp.net. Ale od jakiegoś czasu szukam rozwiązania tego problemu. Wszystko, co widzę, wspomina o wersji kompilatora i wersji framework .net. Myślę, że podałem wszystkie istotne szczegóły, ale jeśli jest jeszcze coś, co powinienem dodać do tego pytania, proszę dać mi znać.

+0

Czy jesteś pewien, że nie ma żadnych głupich błędów, takich jak brakujące 'using' oświadczenia? Ta funkcja powinna działać "od razu po wyjęciu z pudełka". Pracując w sklepie C# przez ostatni rok, nigdy nie widziałem tego problemu. – evanmcdonnal

+0

Nie sądzę, ale nie jestem pewien. Właśnie zmodyfikowałem blok kodu, aby wyświetlić instrukcje użycia. –

+0

A to jest wewnątrz klasy lub głównej? – evanmcdonnal

Odpowiedz

4

Czy Twoja witryna w usługach IIS jest skonfigurowana do korzystania z .NET 2.0? Tak to brzmi dla mnie. Najpierw sprawdź konfigurację ... czy twój test działa lokalnie?

Twój kompilator powinien wyglądać następująco:

<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 

Yours jest ustawiony Version = 2.0.0.0

+0

Podczas wykonywania, raporty Environment.Version 4.0.30319.18034 –

+0

Wprowadziłem zmiany, które zasugerowałeś i nie miało to znaczenia. –

+0

Jaki jest faktyczny błąd, który pojawia się podczas odwiedzania strony? W IIS, w sekcji AppPool (jak sądzę) sprawdziłeś, czy lista rozwijana jest ustawiona na .NET 4? Czy uruchamiasz to w VS lub IIS? Czy używasz ekspresu VS lub IIS do uruchomienia? Czy zweryfikowałeś na ekranie właściwości projektu, że faktycznie kierujesz na .NET 4? –

5

Upewnij się, że masz odniesienie do Microsoft.CSharp w swoim projekcie.

Nieco więcej informacji na temat tego DLL można znaleźć here.

+0

Jest to najprawdopodobniej problem - użycie słowa kluczowego 'dynamic' pośrednio polega na tym zespole. – JerKimball

+0

Początkowo nie miałem odniesienia do Microsoft.CSharp w moim projekcie. Dodałem go i to nie pomogło. Dodałem również "przy użyciu Microsoft.CSharp" do pliku kodu i nadal dostaję błąd. –

+0

Po prostu ponownie uruchomiłem IDE mając nadzieję, że rozwiąże to problem, ale tak się nie stało. –

Powiązane problemy