2010-03-17 27 views
151

DLL này được thêm theo mặc định trong các dự án Visual Studio 2010. Hội đồng mới này được sử dụng để làm gì? Nó dường như không có nhiều sau khi nhìn vào nó bằng cách sử dụng Reflector và Google dường như không có nhiều điều để nói về nó.Microsoft.csharp.dll trong .NET 4.0

Trả lời

174

Được sử dụng khi/nếu bạn sử dụng dynamic keyword trong dự án của mình. Việc lắp ráp có chứa chất kết dính thời gian chạy C#.

Trình biên dịch C# về cơ bản đã được trích xuất thành một thư viện để nó có thể phát ra, biên dịch và chạy mã cần thiết để hỗ trợ từ khóa dynamic. Lần đầu tiên bạn sử dụng dynamic trong mã của mình, assembly này (cũng như System.dll, System.Core.dll và System.Dynamic.dll) sẽ được tải vào AppDomain của bạn.

+2

Bạn có muốn suy đoán về lý do tại sao họ chọn tham chiếu theo mặc định? Tất cả chúng ta có nên sử dụng 'năng động' nhiều hơn chúng ta hiện tại (tức là không bao giờ)? –

+4

@mo nó tương tự như cách chúng tự động thêm 'using System.Linq;' vào tất cả các tệp. Nó chỉ làm cho các tính năng ngôn ngữ mới hơn liền mạch hơn một chút. Nếu bạn muốn sử dụng 'dynamic', nó chỉ hoạt động mà không cần nỗ lực từ phía bạn. –

12

Luôn xóa nó cho đến nay. Chưa có vấn đề gì.

+13

Nếu dự án của bạn không sử dụng từ khóa động, tôi đoán có thể xóa dòng có nội dung '' trong tệp .csproj. – Cheeso

+0

Cảm ơn TomTom và @Cheeso. Tôi đã cố gắng để xây dựng một .dll (Framework thiết lập để 3.5) để sử dụng với Unity, và loại bỏ nó từ các tập tin .csproj đã làm các trick. – Wolfram

+0

Câu trả lời này phù hợp hơn dưới dạng nhận xét bên dưới câu hỏi. Trong khi nó cho thấy một workaround, nó không thực sự trả lời các câu hỏi về những gì lắp ráp mới là cho. – toonice