我無法找到任何有關Class Loader在.NET Framework中的概念的好文檔嗎?它是什麼?哪裏可以找到?有人知道嗎?.NET類加載器 - 它是什麼?
回答
在.NET程序集中是基本的部署單元。實際加載組件的技術稱爲Fusion。欲瞭解更多詳情,請閱讀.NET Fusion Workshop。每個程序集都有自己的類加載器來加載該程序集中的類型。
Hosting the Common Language Runtime也可能是感興趣的。
我不認爲.NET中的Class Loader具有與Java中一樣的重要性或功能。類的加載將由程序集的類加載器處理。
動態加載通常會通過加載程序集,然後實例化類來完成:
Assembly assembly = Assembly.LoadFrom("assemblyName");
Type type = assembly.GetType("className");
object x = Activator.CreateInstance(type);
感謝您的有用信息。 – user118190 2013-02-21 18:47:49
你是什麼意思?與Java類加載器類似的概念?在.NET中,這個概念被映射到AppDomain(只是搜索AppDomain)。
是的,我正在尋找相當於Java Class Loaders的!那麼,我應該搜索AppDomain並閱讀它嗎? – user118190 2010-06-01 21:07:40
** AFAIK **,它們是等價的概念,我的意思是它們都被用作安全邊界,加載到一個Class Loader/App域中的類型,不能被其他Class Loader/App域中的對象使用等等。 你究竟想要完成什麼? – 2010-06-02 13:35:52
我對Java內部不熟悉,但Java Class Loader和.NET AppDomain對我來說似乎不同。來自Wikipedia:「Java Classloader是Java運行時環境的一部分,可將Java類動態加載到Java虛擬機中。」和「在公共語言運行時,應用程序域是一種機制(類似於操作系統中的一個進程),用於將執行的軟件應用程序彼此隔離,以便它們不會相互影響」。相當於一個AppDomain不是一個JVM實例嗎? – 2010-06-08 20:29:02
蘭迪·利維沒有回答所有。類加載器比Assembly.LoadFrom做了更多的工作。 因爲沒有像'Assembly.Unload'這樣的方法。程序集只能通過關閉appdomain來卸載。 Java的類加載器可以比Randy Levy的答案做得更多。這裏標出一個更好的答案在stackoverflow Equivalent of Class Loaders in .NET
- 1. 什麼是類加載器反轉
- 2. Java類加載器:爲什麼先搜索父類加載器?
- 3. 什麼是每個.NET類
- 4. 爲什麼不卸載類加載器就不能卸載類?
- 5. 使用了什麼類加載器?
- 6. SOOT類加載 - 什麼是'水平'?
- 7. 爲什麼JVM不支持強制類/類加載器卸載?
- 8. 什麼是'堆棧',因爲它與.Net
- 9. .NET MySqlCommand.Transaction - 它的用途是什麼?
- 10. 它是什麼加密?
- 11. Java中的類加載器究竟是什麼?
- 12. 什麼是加載/選擇「控制器」類的最佳方式
- 13. 張量:它是什麼,它與載體有什麼不同?
- 14. 什麼是python中的類,它做什麼,它爲什麼需要它?
- 15. 什麼是渴望加載?
- 16. 什麼是延遲加載?
- 17. 什麼是「加載模塊」?
- 18. 什麼是SyncBlockIndex,它在.NET中用於什麼?
- 19. 管理由CorBindToRuntimeEx加載的.NET CLR的版本是什麼?
- 20. ASP .NET Apps v2.0 *的WMI類是什麼?
- 21. .net中的類型安全是什麼?
- 22. 什麼是動態加載類並調用它們的最佳方式
- 23. MethodHandle - 它是什麼?
- 24. 這些數字是什麼,它們的類型是什麼?
- 25. 什麼是OS X會話類型,它們是什麼意思?
- 26. 什麼是.do文件?它的MIME類型是什麼?
- 27. 爲什麼瀏覽器不呈現它加載的一些CSS?
- 28. .NET:什麼是WPF?
- 29. Excel加載項 - ClickOnce - VSTOInstaller.exe.config文件,它是什麼?
- 30. 它是什麼做假填充sql加載程序?
爲什麼你認爲有這樣的事情在.NET中的類加載器? – 2010-06-01 06:28:32
有人問我這個問題,從來沒有遇到過它。我知道這個概念存在於Java中,並且想知道.NET中是否存在相同的概念。 – user118190 2010-06-01 21:06:55