Atsortingbuer une méthode de délégation par reflection

Je me suis retrouvé coincé lors de l’atsortingbution dynamic de méthodes à une instance de délégué par reflection. Voici un exemple de scénario de la situation à laquelle je suis confronté.

class Program { static void Main(ssortingng[] args) { new DynamicDelegateTest().Test(); } } public class DynamicDelegateTest { public void Test() { //This is what i target to do through reflection ABC objABC1 = new ABC(); objABC1.Proc = Debugger; objABC1.Test("Helloz"); //Implementing the same code through reflection ABC objABC = new ABC(); MethodInfo MIDebugger = GetType().GetMethod("Debugger", BindingFlags.NonPublic | BindingFlags.Instance); FieldInfo MyProc = objABC.GetType().GetField("Proc", BindingFlags.Public | BindingFlags.Instance); //This is the point where I got stuck up MyProc.SetValue(objABC, MIDebugger); objABC.Test("QWERTY"); } void Debugger(object Tests) { Console.WriteLine(Tests); } } public class ABC { public delegate void Delg(object P1); public Delg Proc; public void Test(object Tst) { if (Proc != null) Proc(Tst); } } 

S’il vous plaît aider.

Vous devez utiliser Delegate.CreateDelegate pour obtenir l’instance de délégué, plutôt qu’une information de méthode. Pour les méthodes non statiques, cela inclut également l’instance cible. Dans ce cas:

 object del = Delegate.CreateDelegate(MyProc.FieldType, this, MIDebugger); MyProc.SetValue(objABC, del);