在外掛程式式開發。我們要呼叫其它外掛程式或模組的委託事件時、那麼我們需要通過反射。
module 模組
namespacemodule2
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 例中,...