public static void Bind(Delegate d, DelegateCreater creater)
        {
            Type key = creater.GetInterceptorType();

            if (Bindings.ContainsKey(key))
            {
                Bindings.Remove(key);
            }
            Bindings.Add(key, d);
        }
Beispiel #2
0
        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));
        }