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...