C 反射動態呼叫dll中的方法,並返回結果

2022-02-06 22:47:37 字數 1073 閱讀 7523

最近在看工廠開發模式,發現用到了反射,之前只聽說過也沒怎麼用過;所以花了點時間重新溫習了一遍;

反射的作用是動態的載入某個dll(程式集),並執行該程式集中的某個方法,並返回結果;當然也可以給該方法傳遞引數

namespace

assembly_name

} }

上邊寫乙個測試類,命名空間是assembly_name,類名是assembly_class,類名下有個方法show_str引數是string型別,並且返回值是string型別;

//

引導程式集(dll檔案位址),使用assembly類

");

//獲取型別,引數(命名空間+類)

type type = assembly.gettype("

assembly_name.assembly_class

");

//建立該物件的例項,object型別,引數(命名空間+類)

object instance = assembly.createinstance("

assembly_name.assembly_class

");

//設定show_str方法中的引數型別,type型別;如有多個引數可以追加多個

type params_type = new type[1

];

params_type[

0] = type.gettype("

system.string

");

//設定show_str方法中的引數值;如有多個引數可以追加多個

object params_obj = new object[1

];

params_obj[

0] = "

jiaopeng

";

//執行show_str方法

object value = type.getmethod("

show_str

", params_type).invoke(instance, params_obj);

C 反射動態呼叫dll中的方法,並返回結果

最近在看工廠開發模式,發現用到了反射,之前只聽說過也沒怎麼用過 所以花了點時間重新溫習了一遍 反射的作用是動態的載入某個dll 程式集 並執行該程式集中的某個方法,並返回結果 當然也可以給該方法傳遞引數 直接上 namespace assembly name 上邊寫乙個測試類,命名空間是assemb...

C 反射呼叫dll中的方法

反射提供描述程式集 模組和型別的物件 type 型別 可以使用反射動態地建立型別的例項,將型別繫結到現有物件,或從現有物件中獲取型別,然後呼叫其方法或訪問器字段和屬性。如果 中使用了特性,可以利用反射來訪問它們 namespace assembly name public string assemb...

C 通過反射類動態呼叫DLL方法

個人覺得 反射 就是能按照規定 微軟.net 動態訪問特定程式集中物件的工具.網上找的 例子 使用反射方 using system using system.collections.generic using system.linq using system.text using system.re...