/// <summary> /// 构造Class Proxy实例 /// </summary> /// <param name="declaringType">代表declaringType</param> /// <param name="interfaceTypes">代表代理所实现的接口列表</param> /// <param name="h">调用处理器</param> /// <param name="mixins"></param> /// <param name="arguments">代理构造器参数</param> /// <returns></returns> public static object NewProxyInstance(Type declaringType, Type[] interfaceTypes, IInvocationHandler h, object[] mixins = null, params object[] arguments) { Guard.NotNull(declaringType, "parentType"); Guard.NotNull(h, "h"); if (mixins != null && mixins.Length != 0) { var mixinDictionary = GetMixinDictionary(mixins, interfaceTypes); h = new MixinInvocationHandler(mixinDictionary, h); } return(ProxyFactory.CreateProxy(declaringType, interfaceTypes, h, arguments)); }
/// <summary> /// 构造Class Proxy实例 /// </summary> /// <param name="declaringType">代表declaringType</param> /// <param name="interfaceTypes">代表代理所实现的接口列表</param> /// <param name="h">调用处理器</param> /// <param name="mixins"></param> /// <param name="arguments">代理构造器参数</param> /// <returns></returns> public static object NewProxyInstance(Type declaringType, Type[] interfaceTypes, IInvocationHandler h, object[] mixins = null , params object[] arguments) { Guard.NotNull(declaringType, "parentType"); Guard.NotNull(h, "h"); if (mixins != null && mixins.Length != 0) { var mixinDictionary = GetMixinDictionary(mixins, interfaceTypes); h = new MixinInvocationHandler(mixinDictionary, h); } return ProxyFactory.CreateProxy(declaringType, interfaceTypes, h, arguments); }
/// <summary> /// 构造Interface Proxy实例 /// </summary> /// <param name="interfaceTypes">代表代理所实现的接口列表,不运行null</param> /// <param name="h"></param> /// <param name="mixins"></param> /// <returns></returns> public static object NewProxyInstance(Type[] interfaceTypes, IInvocationHandler h, object[] mixins = null) { Guard.NotNull(h, "h"); if (interfaceTypes == null || interfaceTypes.Length == 0) { throw new ArgumentNullException("interfaceTypes"); } if (mixins != null && mixins.Length != 0) { var mixinDictionary = GetMixinDictionary(mixins, interfaceTypes); h = new MixinInvocationHandler(mixinDictionary, h); } return(ProxyFactory.CreateProxy(typeof(object), interfaceTypes, h)); }
/// <summary> /// 构造Interface Proxy实例 /// </summary> /// <param name="interfaceTypes">代表代理所实现的接口列表,不运行null</param> /// <param name="h"></param> /// <param name="mixins"></param> /// <returns></returns> public static object NewProxyInstance(Type[] interfaceTypes, IInvocationHandler h, object[] mixins = null) { Guard.NotNull(h, "h"); if (interfaceTypes == null || interfaceTypes.Length == 0) throw new ArgumentNullException("interfaceTypes"); if (mixins != null && mixins.Length != 0) { var mixinDictionary = GetMixinDictionary(mixins, interfaceTypes); h = new MixinInvocationHandler(mixinDictionary, h); } return ProxyFactory.CreateProxy(typeof(object),interfaceTypes, h); }