2013-02-07 45 views
5

Microsoft Visual Studio 2010 Ultimate (Phiên bản 10.0.40219.1 SP1Rel).Không thể tìm thấy tên hoặc không gian tên 'động'

Microsoft .NET Framework phiên bản 4.5.50709 SP1Rel

Tôi đang biên dịch sang .net framework 4.0.

Bất cứ khi nào tôi cố gắng sử dụng các kiểu dữ liệu động hoặc var, tôi nhận được lỗi hiển thị trong dòng tiêu đề:

Loại hoặc tên không gian tên 'năng động' không thể được tìm thấy.

Không thể tìm thấy loại tên hoặc không gian tên 'var'.

Tôi đang cố gắng sử dụng JsonFX để phân tích cú pháp dữ liệu mà tôi nhận được từ một dịch vụ web khác. Đôi khi với dữ liệu sẽ đại diện cho một "thông điệp", và đôi khi nó sẽ đại diện cho một "theo dõi". Theo điều này JsonFx Documentation, tôi sẽ có thể làm theo ví dụ về "Sắp xếp theo/từ các loại động (mặc định cho .NET 4.0):"

Tôi đã thêm một trang vào trang web của tôi được gọi là kiểm tra. Các khối mã dưới đây là từ Test.aspx.cs Mã Tôi cố gắng để sử dụng là:

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

Trong file 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> 

Tôi khá mới đến C# và asp.net. Nhưng tôi đã tìm kiếm một giải pháp cho vấn đề này trong một thời gian. Mọi thứ tôi thấy đều đề cập đến phiên bản trình biên dịch và phiên bản .net framework. Tôi nghĩ rằng tôi đã cung cấp tất cả các chi tiết liên quan, nhưng nếu có bất cứ điều gì khác tôi nên thêm vào câu hỏi này, xin vui lòng cho tôi biết.

+0

Bạn có chắc chắn bạn không có bất kỳ sai lầm ngớ ngẩn như mất tích 'báo cáo using'? Chức năng này sẽ hoạt động 'ra khỏi hộp'. Làm việc tại một cửa hàng C# cho năm ngoái tôi chưa bao giờ thấy vấn đề này. – evanmcdonnal

+0

Tôi không nghĩ như vậy, nhưng tôi không chắc chắn. Tôi vừa sửa đổi khối mã để hiển thị các câu lệnh sử dụng. –

+0

Và đây là bên trong một lớp học hoặc chính? – evanmcdonnal

Trả lời

4

Trang web của bạn trong IIS có được định cấu hình để sử dụng .NET 2.0 không? Đó là những gì nó giống như tôi. Kiểm tra cấu hình đầu tiên .. kiểm thử của bạn có hoạt động cục bộ không?

trình biên dịch của bạn sẽ trông như thế này:

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

Yours được thiết lập để Version = 2.0.0.0

+0

Trong thời gian chạy, các báo cáo Environment.Version 4.0.30319.18034 –

+0

Tôi đã thực hiện các thay đổi bạn đã đề xuất và nó không tạo sự khác biệt. –

+0

Lỗi thực tế mà bạn nhận được khi truy cập trang là gì? Trong IIS, dưới phần AppPool (tôi nghĩ) bạn đã xác minh rằng trình đơn thả xuống được đặt thành .NET 4 chưa? Bạn đang chạy điều này trong VS hoặc trên IIS? Bạn đang sử dụng VS hoặc IIS Express để chạy? Bạn đã xác minh trên màn hình thuộc tính dự án mà bạn đang thực sự nhắm mục tiêu .NET 4? –

5

Đảm bảo bạn có tham chiếu đến Microsoft.CSharp trong dự án của mình.

Thông tin thêm về DLL này có thể được tìm thấy here.

+0

Điều này rất có thể là vấn đề - việc sử dụng từ khóa 'động' hoàn toàn dựa vào việc lắp ráp này. – JerKimball

+0

Tôi đã không ban đầu có một tham chiếu đến Microsoft.CSharp trong dự án của tôi. Tôi đã thêm nó, và nó không giúp được gì. Tôi cũng đã thêm một "bằng cách sử dụng Microsoft.CSharp" vào tập tin mã, và tôi vẫn nhận được lỗi. –

+0

Tôi chỉ cần khởi động lại IDE với hy vọng nó sẽ giải quyết vấn đề, nhưng nó không. –

Các vấn đề liên quan