以前曾寫過一篇「關於跨程式集的反射」的blog,關於跨程式集載入型別,文中使用的是方法是:先載入目標型別所在的程式集,再使用
assembly.gettype方法獲取型別。文後luna
<
object
name="
datastreamhelper
"type="
datacenterbase.common.datastreamhelper,datacenterbase
"/>
配置中的「type」的值正好與type.gettype方法的引數格式完全一致,於是我猜想spring.net是使用了type.gettype方法。我檢視了spring.net這塊的源**,出乎意料的是spring.net並沒有使用type.gettype這個捷徑,而仍然使用了assembly.gettype方法。也不知道為什麼,呵呵
為了以後使用方便,我自己封裝了乙個靜態方法,來支援任意型別的載入。
1#region
gettype2//
assemblyname不用帶副檔名,如果目標型別在當前程式集中,assemblyname傳入null
3public
static
typegettype(
string
typefullname,
string
assemblyname)49
10//
搜尋當前域中已載入的程式集
11assemblyasses=12
foreach
(assemblyass
inasses)
1319}20
21//
載入目標程式集
22assemblytarassem
=assembly.loadwithpartialname(assemblyname);
23if
(tarassem
!=null)24
2728
return
null;29
}30#endregion
關於使用type.gettype載入非當前程式集中的型別,誰有成功的經驗了?感謝分享下。
反射程式集
public void reflectassembly listtables,string iteguid,dictionary tablekeys 是建構函式中傳進去的引數的型別 在該示例中public timecopy listtables,string itemguid,dictionaryt...
c 程式集及反射
程式層次 1.獲取當前應用程式域下的所有應用程式集 2.獲取乙個程式集下的類 assembly assm assembly.loadfile d 完成專案 2014 3 14 kongzhitai xml testlei bin debug testlei.dll type types assm.g...
程式集反射 Type 類
type 類 表示型別宣告 類型別 介面型別 陣列型別 值型別 列舉型別 型別引數 泛型型別定義,以及開放或封閉構造的泛型型別。這個類是執行緒安全的。type 為 system.reflection 功能的根,也是訪問元資料的主要方式。使用 type 的成員獲取關於型別宣告的資訊,如建構函式 方法 ...