C 反射呼叫其它DLL的委託事件 傳值

2022-01-24 07:02:19 字數 2168 閱讀 4275

在外掛程式式開發。我們要呼叫其它外掛程式或模組的委託事件時、那麼我們需要通過反射。

module 模組

namespace

module2

protected

virtual

void valueinformation(string text, string info, string

tb)

private

void button1_click(object

sender, routedeventargs e)

valueinformation(

"你好!釣魚島是中國的!!

","打死小日本!!

",textbox1.text);

}public

override

void

uninstallevent()}}

反射

1

///2

///模組之間 委託事件 通訊

3///

4///

當前的window

5///

要反射模組中的 委託事件名稱

6///

在當前類中要執行的事件名稱

7///

反射檔案的路經

8///外掛程式9

///通訊的訊息

10public

static

void moduleventcommunication(window currentwindow, string

reflectioneventname,

11string currenteventname, string

filepath, plugin plugin,

12object

eventparameter)

1336

//反射執行的成員和型別搜尋

37const bindingflags mybindingflags = bindingflags.instance | bindingflags.public | bindingflags.nonpublic |bindingflags.static;

38 eventinfo eventinfo =t.getevent(reflectioneventname, mybindingflags);

39//

獲取到當前的類

40var obj =(ielementsview)assembly.createinstance(t.fullname);

41if (eventinfo != null)42

;50//呼叫

51minaddhandler.invoke(obj, addhandlerargs);

52 fieldinfo field =t.getfield(reflectioneventname,

53mybindingflags);

54if (field != null)55

63}64}

65if (obj != null)66

71}7273}74

}75catch

(filenotfoundexception)

7680

catch

(targetparametercountexception)

8185

catch

(exception)

8690 }

本模組呼叫:

呼叫反射資訊

void test2_click(object

sender, routedeventargs e)

);//注 在反射testevent 時候 ,testevent有幾個引數 那麼s_testevent 也有幾個引數。

//不然會丟擲異常資訊,targetparametercountexception 引數的個數不同

}

private

static

void delebinddata(string msg, string info,string

tb)

此**是我在一次開發中遇到的問題。。在這裡做個備註 ,防止下次忘記了。。

c 11委託 事件 反射

using system using system.collections.generic using system.linq using system.text namespace 11 using system using system.collections.generic using sys...

c 委託事件

1,什麼是委託 委託是什麼?從生活理解就像是你是乙個c 程式設計師,你對c 並不了解,當需要進行c 分析的時候你委託給你的一位懂c 的同事幫你來完成 在c 中,委託的作用是這樣描述的 委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成...

C 委託事件

一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 例中,...