C 程式集載入方法

2021-05-11 12:35:02 字數 880 閱讀 2245

原文: http://blog.csdn.net/podded/archive/2008/10/27/3158687.aspx

要從程式集的元資料中獲取程式集的資訊,首先需要引導程式集。.net中引導程式集方法有幾種,本人結合自己的實踐和認識簡單介紹一下。描述不一定很準確,請提出來一起進步。

一、隱式載入

沒有被顯式載入但被引用的程式集,clr會按照全域性程式集快取(gac)、工作目錄(應用程式所在目錄)以及私有路徑目錄的順序來尋找並載入。

五、assembly.loadfile方法

用來載入指定路徑上的程式集檔案的內容。使用 loadfile 方法來載入和檢查具有相同標識但位於不同路徑中的程式集。與 loadfrom 不同,loadfile 不會將檔案載入到 loadfrom 上下文中,也不會使用載入路徑解析依賴項。loadfile 在這個受限制的方案中很有用,因為 loadfrom 不能用於載入標識相同但路徑不同的程式集;它只載入第乙個這樣的程式集。

六、assembly.loadwithpartialname方法

使用部分名稱從應用程式目錄或從全域性程式集快取引導程式集。引數為程式集標識,其中包含程式集的名稱(不帶副檔名)。程式集的版本、語言文化及公用金鑰標記為可選。該方法執行時clr首先檢查應用程式的xml配置檔案來搜尋qualifyassembly元素,若存在則該元素應能告訴clr如何將乙個部分的程式集標識對映為完全限定的標識,crl將根據通常規則來查詢程式集。若該元素不存在,crl將使用指定名稱在應用程式的工作目錄和私有路徑目錄中搜尋。若仍未找到,則到gac中查詢。

七、傳統vc動態庫的呼叫

通過 p/invoke 呼叫win32 dll

using system.runtime.interopservices;//這是用到dllimport時候要引入的程式集

C 使用反射載入多個程式集

當開發外掛程式的時候需要用到反射,在客戶端動態載入遍歷程式集,並呼叫每個程式集的方法。建立乙個控制台應用程式,首先設計乙個介面 public inte ce isay 在控制台應用程式下建立plugins資料夾,控制台的可執行檔案和所有程式集檔案都生成在這裡。右鍵控制台專案 屬性 生成 把 輸出路徑...

程式集載入和反射

元資料表是用一系列字段表,方法表,型別定義表組成的。可以利用system.reflection命名空間中包含的型別,可以寫 來反射這些元資料表。具體的反射機制我是這樣理解的 首先應該清楚的了解到,system.reflection命名空間中的型別為程式集或模組中包含的換資料表提供了乙個物件模型 通過...

程式集載入和反射

最近一直都在看關於程式集載入和反射方面的資料,所以在這裡把我所學習到的東西記錄下來,方便自己以後複習,也給園子裡面不懂的朋友參考。net中反射在執行中過程中解析程式集中的元資料,獲得型別中的成員 包括字段 構造器 方法 屬性 事件等 資訊。把下面的類放在乙個類庫工程中,並編譯生成程式集 例如為cla...