2010-11-26 80 views
2

讓我們考慮一下名爲AAA的應用程序。 Now Im正在加載名爲BBB的程序集。程序集BBB正在進行事件和代表的聲明。 BBB中的事件處理程序在AAA中可用。當加載程序集BBB時,我需要在AAA中添加事件的處理程序。 每當事件發生在BBB中時,AAA中的處理程序方法就會自動執行。 如何完成這個..........?using System.Reflection

我編碼方式類似於DIS在AAA

Assembly tstComponent = Assembly.LoadFile(BBB); 
      Type Global = tstComponent.GetType(ClassInBBB, false, true); 
if (Global != null) 
      { 

       EventInfo l_objevent = Global.GetEvent("OnGetdelInBBB"); 
       Type l_objEveType = l_objevent.EventHandlerType; 
       Type Dis = Assembly.GetExecutingAssembly().GetType("AAA", false, true); 
       MethodInfo l_method = Dis.GetMethod("HandlerinAAA"); 
       Delegate d = Delegate.CreateDelegate(l_objEveType, l_method);//Getting argument bind exception in this line 
       MethodInfo addHandler = l_objevent.GetAddMethod(); 
       Object[] addHandlerArgs = { d }; 
       addHandler.Invoke(Dis, addHandlerArgs); 

      } 

請幫助我。在此先感謝

回答