如何遍歷所有程式集中的成員 類

2021-08-14 23:29:33 字數 1532 閱讀 1947

system.reflection.assembly類是乙個比較常用到的類,在反射中就經常用到。

//assembly asm = assembly.loadfile(assemblefilename);

assembly asm = assembly.load("colligate.datasource.servicemonitor");

var typestoregister = asm.gettypes()

.where(type => !string.isnullorempty(type.namespace))

.where(type => type.basetype != null && type.basetype.isgenerictype && type.basetype.getgenerictypedefinition() == typeof(entitytypeconfiguration<>));

foreach (var type in typestoregister)

注意在assembly裡面的引導程式集有3個方法,分別是load、loadfrom和loadfile。這3個方法有什麼異同呢?

如果你引用了命名空間,那麼就直接load()方法,引數裡面寫上命名空間+類名就可以載入了。

如果僅僅知道乙個dll檔案的那麼就要用loadfrom()方法了,引數裡面直接填寫完整的路徑。

loadfrom 方法具有以下缺點。請考慮改用 load。

總結: loadfrom只能用於載入不同標識的程式集, 也就是唯一的程式集, 不能用於載入標識相同但路徑不同的程式集。

3.loadfile 載入指定路徑上的程式集檔案的內容。

這個方法是從指定的檔案來引導程式集,它是呼叫外部的api實現的載入方式,和上面load,loadfrom方法的不同之處是這個方法不會載入此程式集引用的其他程式集,也就是不會引導程式的依賴項。而同時也是不能載入相同標識的程式集的。

4.getexecutingassembly獲取當前正在執行的程式集。

static void main(string args)

讀取嵌入的資源,主要有如下兩個方法:

getmanifestresourcenames:讀取嵌入的資源名稱。

getmanifestresourcestream:讀取嵌入的資源為流。

static void main(string args)

stream mystream = ass.getmanifestresourcestream("test.1.txt");

console.writeline();

using (streamreader sr = new streamreader(mystream, encoding.default))

console.readkey();

}

python遍歷類的所有成員

這段 自定義了乙個類,類包含了兩個成員title和url,在類的內部定義了乙個函式list all member用於輸出類的所有成員變數及值 coding utf 8 class site object def init self self.title share js code self.url ...

程式遍歷memcache中的所有key value

memcache是乙個高效能的分布式的記憶體物件快取系統,通過在記憶體裡維護乙個統一的巨大的hash表,它能夠用來儲存各種格式的資料,包括影象 視 頻 檔案以及資料庫檢索的結果等。memcache是danga.com的乙個專案,最早是為 livejournal 服務的,最初為了加速 livejour...

c 如何獲取程式集中的GUID值

using system.reflection using system.runtime.interopservices attribute guid attr attribute.getcustomattribute assembly.getexecutingassembly typeof gui...