using System; using System.Reflection; class Program { static void Main(string[] args) { MyTemp instance = new MyTemp(); MyTempEventTest(instance); instance.Create(); } private static void Instance_Created(object sender, TempEventArgs e) { Console.WriteLine("Event Fired: " + e.Name); } private static void MyTempEventTest(object objTarget) { Type arg2Type = typeof(TempEventArgs); EventInfo ei = typeof(MyTemp).GetEvent("Created", BindingFlags.Public | BindingFlags.Instance); ei.AddEventHandler(objTarget, (EventHandler)Instance_Created); /* Type[] methodArgs = { typeof(object), arg2Type }; DynamicMethod eventSourceCreated = new DynamicMethod( "test", typeof(void), methodArgs, typeof(Program), true); ILGenerator il = eventSourceCreated.GetILGenerator(); il.Emit(OpCodes.Ret); Delegate del = eventSourceCreated.CreateDelegate(ei.EventHandlerType); Console.WriteLine(del.Method.Name); */ } } public class TempEventArgs : EventArgs { public string Name; } public class MyTemp { public void Create() { Created(this, new TempEventArgs { Name = "MyTEmp" }); } public event EventHandler Created; }

[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]