關於跨程式集的反射(續)

2021-08-22 02:04:13 字數 1074 閱讀 8779

以前曾寫過一篇「關於跨程式集的反射」的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 的成員獲取關於型別宣告的資訊,如建構函式 方法 ...