public static IProxyMethodInfo AsProxy(this MethodInfo info) { IProxyType proxyType = factory.Get(info.DeclaringType); Type[] types = info.GetParameterTypes().ToArray(); if (info.IsPublic) return proxyType.GetMethod(info.Name, types); return proxyType.GetMethod(info.Name, types, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static); }
public static IProxyInvoker AsProxy(this MethodInfo info, object target) { IProxyType proxyType = factory.Create(info.DeclaringType); IProxyMethodInfo proxyMethodInfo = proxyType.GetMethod(info); return(new ProxyInvoker(target, proxyMethodInfo)); }
public IProxyMethodInfo GetMethod(string name, Type[] parameterTypes, BindingFlags flags) { IProxyMethodInfo info = this.GetMethodInfo(name, parameterTypes); if (info != null) { return(info); } #if NETFX_CORE MethodInfo methodInfo = this.type.GetMethod(name, flags); #else MethodInfo methodInfo = this.type.GetMethod(name, flags, null, parameterTypes, null); #endif if (methodInfo != null && methodInfo.DeclaringType.Equals(type)) { return(this.CreateProxyMethodInfo(methodInfo)); } IProxyType baseTypeInfo = this.GetBase(); if (baseTypeInfo == null) { return(null); } return(baseTypeInfo.GetMethod(name, parameterTypes, flags)); }
public virtual IProxyMethodInfo GetMethod(string name, Type[] parameterTypes) { IProxyMethodInfo info = this.GetMethodInfo(name, parameterTypes); if (info != null) { return(info); } MethodInfo methodInfo = this.type.GetMethod(name, parameterTypes); if (methodInfo != null && methodInfo.DeclaringType.Equals(type)) { return(this.CreateProxyMethodInfo(methodInfo)); } IProxyType baseTypeInfo = this.GetBase(); if (baseTypeInfo == null) { return(null); } return(baseTypeInfo.GetMethod(name, parameterTypes)); }
public static IProxyMethodInfo AsProxy(this MethodInfo info) { IProxyType proxyType = factory.Create(info.DeclaringType); return(proxyType.GetMethod(info)); }