我需要在一个安全的地方执行所有传出的WCF方法调用。
因此,我创建了一个获取Expression<Action<T>>
参数的函数,然后执行指向的方法。
在这个方法中,我可以得到在方法调用之后立即执行的完整事件的名称。
我想注册这个事件(可能是通过反思)。 请注意,Complete事件的args可以是任何类型,因此我可能必须使用lambda表达式。 这是功能:
public void Invoke<T>(Expression<Action<T>> action) where T : class
{
var method = (MethodCallExpression)action.Body;
string methodName = method.Method.Name;
Action<T> m = action.Compile();
string eventName = methodName + "Completed";
// Here I want to register to the eventName event.
m.Invoke(obj);
}