.netCore各種通過反射加載程序集的方法的總結


AppDomain.CurrentDomain.GetAssemblies()

這個方法獲取的是當前應用程序域已經加載的程序集,未加載的是獲取不到的(盡管引用了該項目),所以在配置依賴注入時,可能會出現有些程序集拿不到的情況,導致沒有注入所有需要的服務。

Assembly.GetEntryAssembly().GetReferencedAssemblies().Select(Assembly.Load)

獲取該應用所有引用的程序集

DependencyContext.Default.CompileLibraries

獲取CLR中的所有庫(我也是一知半解)

總結

若要通過反射進行依賴注入的話,該應用必須要引用所有要注冊的服務,然后使用第2、3中方式獲取程序集。第一種方式最好別用,因為程序啟動時並不會加載所有程序集。

記錄一下。后面知識增長了會完善


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM