靜態和動態裝配之間有什麼區別?只有這樣的事實,一個可以從文件加載,另一個可以在程序運行期間創建?裝配類型 - 有什麼區別
回答
靜態程序集可以包含.NET Framework類型(接口和類)以及程序集資源(位圖,JPEG文件,資源文件等)。靜態程序集存儲在可移植可執行文件(PE)中的磁盤上。您還可以使用.NET Framework創建動態程序集,這些程序集可以直接從內存中運行,並且在執行之前不會保存到磁盤中。您可以將動態程序集執行後保存到磁盤。
靜態組件是那些永久存儲在磁盤上的組件。它們可能包括.NET Framework類,接口以及資源文件。這些程序集不是直接從內存中加載,而是在CLR(公共語言運行時)請求它們時直接從磁盤加載。這些程序集用於在磁盤上存儲一個文件或一組文件。每當編譯C#代碼時,都會獲得STATIC程序集。
動態程序集是那些在執行前未存儲在磁盤上的程序集,事實上它們在執行後存儲在磁盤上。當.NET運行時調用它們時,它們直接從內存加載而不是從磁盤加載。反射發射提供了許多方法來創建動態程序集手段這些是使用System.Reflection.emit命名空間在內存中創建的。System.Reflection.Emit命名空間包含允許編譯器或工具發出元數據和Microsoft中間語言(MSIL)的類和可選擇在磁盤上生成一個PE文件。當應用程序需要這些程序集中的類型時,這些動態程序集是在運行時動態創建的
簡單地說,靜態程序集是我們每天與其交互的常規程序集加載解析它等。用反射和調用來創建它。
信息來源:http://www.dotnetheaven.com/article/static-assembly-vs-dynamic-assembly-in-csharp和MSDN
我也只是嘗試閱讀和使用'System.Reflection.Emit' - 可以創建(使用step-bystep教程一些應用程序 - 結果得到的類可以管理的4個變種之一 - 根據AppDomain.DefineDynamicAssembly( )和'AssemblyBuilderAccess ' - 反射,運行,RunANdSave,保存。嘗試使用保存。現在我保存它 - 得到lib(* .dll文件),但仍然沒有看到它什麼時候可以使用。 – gbk
- 1. 聚類和匹配有什麼區別?
- 2. 有界通配符和類型參數有什麼區別?
- 3. Rails數據類型有什麼區別?
- 4. 文檔類型有什麼區別
- 5. 下載頁面上Spark的封裝類型有什麼區別?
- 6. 泛型有什麼區別
- 7. 泛型類型和泛型類型定義有什麼區別?
- 8. 通配符和類型變量有什麼區別?
- 9. 選項類型和可空類型有什麼區別?
- 10. 有什麼區別擴展類型和類型
- 11. ASN.1枚舉類型和選擇類型有什麼區別?
- 12. 兩種(類型)值和類型(值)有什麼區別?
- 13. 潛類型和Manifest類型有什麼區別?
- 14. 複合類型和匿名類型有什麼區別?
- 15. 類型1和類型2模糊邏輯有什麼區別?
- 16. C++「類型推導」和Haskell「類型推論」有什麼區別?
- 17. Cython中numpy「類型標識符」和「類型」有什麼區別?
- 18. 類型定義和類型引用有什麼區別?
- 19. Haskell中的類型和數據類型有什麼區別?
- 20. 正常類型和匿名類型有什麼區別?
- 21. 類型轉換和類型斷言有什麼區別?
- 22. 繼承與類別有什麼區別
- 23. 分配原型到Object.create原型有什麼區別
- 24. Java ArrayList:添加原始類型或其包裝類:有什麼區別?
- 25. 抽象和封裝有什麼區別?
- 26. 在Java中使用無界通配符和泛型類型有什麼區別?
- 27. Debug類和Trace類有什麼區別?
- 28. ConfigurationManager類和Settings類有什麼區別?
- 29. HostingEnvironment類和HttpRuntime類有什麼區別?
- 30. 子類和子類有什麼區別?
好問題!簡單但沒有處理很多! –