public static void Bind(Delegate d, DelegateCreater creater) { Type key = creater.GetInterceptorType(); if (Bindings.ContainsKey(key)) { Bindings.Remove(key); } Bindings.Add(key, d); }
public MethodInfo CallOne(MethodInfo method, DelegateCreater delegateCreater) { RuntimeHelpers.PrepareMethod(method.MethodHandle); string name = string.Format("Call_{0}", method.Name); Type returnType = method.ReturnType; Type[] parameterTypes = ExtractParameterTypes(method); MethodInfo created = CreateMethod(method, name, returnType, parameterTypes); return(delegateCreater.CreateDelegate(created)); }