Assembly.LoadFrom與Assembly.LoadFile

區別:
1、Assembly.LoadFile只載入相應的dll文件,比如Assembly.LoadFile("a.dll"),則載入a.dll,假如a.dll中引用了b.dll的話,b.dll並不會被載入。
Assembly.LoadFrom則不一樣,它會載入dll文件及其引用的其他dll,比如上面的例子,b.dll也會被載入。
2、用Assembly.LoadFrom載入一個Assembly時,會先檢查前面是否已經載入過相同名字的Assembly,比如a.dll有兩個版本 (版本1在目錄1下,版本2放在目錄2下),程序一開始時載入了版本1,當使用Assembly.LoadFrom("2//a.dll")載入版本2 時,不能載入,而是返回版本1。
Assembly.LoadFile的話則不會做這樣的檢查。 

上面是別人寫的。

其實簡單的說,就是如果dll和其引用集在一起的話就是用LoadFrom都加載進來。這個方法有個特點,後面會講。

如果只是想反射加載一個dll,比如插件就是這種情況,用LoadFile加載。顯然這個方法要求很苛刻,默認依賴的程序集必須已經加載全了,否則會報錯。

但是LoadFrom並不是這樣,反射加載的對象,如果用不到的dll,可能並不會報錯……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章