0
想象一下MainLibrary.dll
即dynamically loading other helper DLLs。這是對我們的設計更改,爲此,我們需要通過註冊AssemblyResolve
回調來引導過程。當你的DLL被加載時事件/檢測?
當有單一入口點時(例如:Main()
),這很容易實現,但在我們的案例中,MainLibrary.dll
有多個入口點。我們希望避免引入明確的Init()
調用,因爲這會打破現有的客戶端庫API(「」)在調用DoSomeWork()「)之前,您現在必須調用Init()。
那麼有沒有一種方法讓圖書館知道它何時被加載或即將被使用?通過這種方式,我們可以鎖定在那裏執行我們的註冊,在動態加載更改之前維護客戶端庫接口。
['AppDomain.AssemblyLoad'](http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyload(v = vs.110).aspx)將程序集加載到記憶第一次。所以你應該可以在事件處理程序中添加自舉代碼。 – Xenolightning
@Xenolightning - 我想'AssemblyLoad'已經太遲了,因爲DeepSpace101想從程序集中知道它尚未加載,因此無法聽到任何「加載」事件。 –