public DefaultInvocation(IInterceptor[] interceptors, MemberTypes memberType, string memberName, MemberOperateTypes memberOperateType, object[] arguments, object invocationTarget, MethodInfo methodInvocationTarget, object proxy, MethodInfo method) { if (interceptors != null) { _interceptors = new Queue <IInterceptor>(interceptors); } MemberType = memberType; MemberName = memberName; MemberOperateType = memberOperateType; Arguments = arguments; InvocationTarget = invocationTarget; MethodInvocationTarget = methodInvocationTarget; Proxy = proxy; Method = method; ReturnValue = new WrapperObject(); }
/// <summary> /// 调用 抽象类 /// </summary> /// <param name="interceptors">拦截器</param> /// <param name="memberType">成员类型</param> /// <param name="memberName">成员名</param> /// <param name="memberOperateType">成员操作类型</param> /// <param name="argumentTypes">参数类型</param> /// <param name="genericArgumentTypes">泛型参数类型</param> /// <param name="returnValueType">返回类型</param> /// <param name="invocationTarget">调用目标对象</param> /// <param name="proxy">代理对象</param> /// <param name="arguments">参数</param> protected InvocationBase(IInterceptor[] interceptors, MemberTypes memberType, string memberName, MemberOperateTypes memberOperateType, Type[] argumentTypes, Type[] genericArgumentTypes, Type returnValueType, object invocationTarget, object proxy, object[] arguments) { if (interceptors != null && interceptors.Length > 0) { _interceptors = new Queue <IInterceptor>(interceptors.Where(w => w != null)); } MemberType = memberType; MemberName = memberName; MemberOperateType = memberOperateType; ArgumentTypes = argumentTypes == null ? Type.EmptyTypes : argumentTypes; GenericArgumentTypes = genericArgumentTypes == null ? Type.EmptyTypes : genericArgumentTypes; ReturnValueType = returnValueType; InvocationTarget = invocationTarget; Proxy = proxy; Arguments = arguments; }