簡體   English   中英

控制何時加載引用的.NET程序集

[英]Control when referenced .NET assemblies are loaded

通常,當執行引用的程序集中某個類型的第一個方法時,將加載該程序集的引用的程序集。

強制在應用程序流程可以容忍延遲的位置強制加載所有引用的程序集,以免在可能無法容忍的進一步執行中避免延遲(例如,在時間緊迫的方法中)嗎?

如果是,那么最好的方法是什么? (反思……)

我目前的雇主產品之一是從條目集的目錄中獲取所有DLL的列表。 然后,使用Assembly.LoadFrom將它們全部加載。 它在啟動屏幕啟動時執行此操作。 坦白說,代碼使我感到恐懼。 我們不得不采取一些措施來避免某些DLL。 我們必須更改安裝程序才能在更新之前將目標目錄清除干凈。 這是一個非常不安全的計划。

在上一份工作中,我編寫了一個類似的函數,該函數使用GetReferencedAssemblies方法。 從入口程序集開始,它將遞歸地調用它,然后是Assembly.LoadFrom 在加載了我們的產品未附帶的程序集后,它將停止遞歸。 它起作用了,但是從那以后我就認為這是不必要的。

在我正在研究的當前產品中,我們使用Autofac為應用程序構建完整的依賴樹。 用於配置引用整個項目中所有服務的引導程序代碼-我想至少是代碼的70%。 同樣,在啟動屏幕啟動時觸發。 這是正確的方法。 它平衡了“加載必需品”和“花時間加載包括永不使用的東西在內的所有內容”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM