dll里的存在一個委托
public event SenderCardMachineEventHandler SenderCardMachineEventFun;
public delegate void SenderCardMachineEventHandler(int nHotelID, object Obj, E_OPERATION_STATUS Status);
其中E_OPERATION_STATUS為DLL里的一個列舉
正常情況下我們是參考這個DLL然后定義一個
public void SendCardCallback(int nHotelID, object Obj, E_OPERATION_STATUS Status)
{
//具體操作
}
SenderCardMachineEventFun+= SendCardCallback;
這樣完成呼叫。
目前需要改為使用反射的形式,現在就遇到一個問題是定義不了public void SendCardCallback(int nHotelID, object Obj, E_OPERATION_STATUS Status)這個方法,因為E_OPERATION_STATUS這個列舉不存在。請問 需要如何改成反射形式?
uj5u.com熱心網友回復:
你這個 dll 是 .net 編譯的嗎?如果是,參考后應可以使用這個列舉型別,否則使用 int 型別替代試試。uj5u.com熱心網友回復:
Type T = Assembly.GetType("E_OPERATION_STATUS");uj5u.com熱心網友回復:
什么場景導致必須要用反射?觸發了某個事件,且被注冊了方法,就呼叫,反之不呼叫
……
if(SenderCardMachineEventFun!=null)
{
……
SenderCardMachineEventFun(int,object,E_OPERATION_STATUS Status);
……
}
……
uj5u.com熱心網友回復:
用 Enum.Parse轉載請註明出處,本文鏈接:https://www.uj5u.com/net/129565.html
標籤:C#
