Microsoft.csharp.dll คืออะไรใน. NET 4.0


164

DLL นี้ถูกเพิ่มโดยค่าเริ่มต้นในโครงการ Visual Studio 2010 ชุดใหม่นี้ใช้ทำอะไร? ดูเหมือนว่ามันจะไม่มีอะไรมากหลังจากมองดูมันโดยใช้ Reflector และ Google ก็ไม่ได้พูดอะไรมากมาย


คำตอบ:


193

มันถูกใช้เมื่อ / ถ้าคุณใช้dynamicคำหลักในโครงการของคุณ แอสเซมบลีประกอบด้วยตัวโยงรันไทม์ C #

คอมไพเลอร์ C # ได้รับการแยกออกเป็นห้องสมุดเพื่อให้สามารถปล่อยรวบรวมและเรียกใช้รหัสที่จำเป็นในการสนับสนุนdynamicคำหลัก ครั้งแรกที่คุณใช้dynamicรหัสของคุณแอสเซมบลีนี้ (รวมถึง System.dll, System.Core.dll และ System.Dynamic.dll) จะถูกโหลดลงใน AppDomain ของคุณ


3
คุณสนใจที่จะคาดเดาว่าทำไมพวกเขาถึงเลือกอ้างอิงโดยค่าเริ่มต้น เราทุกคนควรจะใช้dynamicมากกว่าที่เราเป็นอยู่ในปัจจุบัน (เช่นไม่เคย)?
โม

4
@mo คล้ายกับวิธีเพิ่มลงusing System.Linq;ในไฟล์ทั้งหมดโดยอัตโนมัติ มันทำให้ภาษาที่ใหม่กว่ามีความราบรื่นขึ้นเล็กน้อย หากคุณต้องการใช้dynamicมันจะทำงานได้โดยไม่ต้องใช้ความพยายาม
Matt Greer

16

นำออกมาเสมอ ยังไม่มีปัญหา


13
หากโครงการของคุณไม่ได้ใช้คำหลักแบบไดนามิกฉันคิดว่ามันโอเคที่จะลบบรรทัดที่ระบุไว้<Reference Include="Microsoft.CSharp" /> ในไฟล์. csproj
Cheeso

ขอบคุณ TomTom และ @Ceeso ฉันพยายามที่จะสร้าง. dll (Framework set เป็น 3.5) เพื่อใช้กับ Unity และลบออกจากไฟล์. csproj ซึ่งเป็นเคล็ดลับ
Wolfram

4
"คำตอบ" นี้เหมาะสมกว่าสำหรับความคิดเห็นด้านล่างคำถาม ในขณะที่มันแสดงให้เห็นถึงวิธีการแก้ปัญหามันไม่ได้ตอบคำถามของสิ่งที่ประกอบใหม่สำหรับ
toonice
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.