public class MyClass { void ToDoBefore() { } void ToDoAfter() { } public object ExecuteMethod(string methodName, object[] args) { var method = this.GetType().GetMethod(methodName); ToDoBefore(); object returnValue = method.Invoke(this, args); ToDoAfter(); return returnValue; } }
public class MyClass { public delegate void SampleDelegate(); public SampleDelegate SampleMethodDel; void ToDoBefore() { } void ToDoAfter() { } private void SampleMethod() { } public MyClass() { SampleMethodDel += ToDoBefore; SampleMethodDel += SampleMethod; SampleMethodDel += ToDoAfter; } }