internal static CallInfo CreateCallInfo(MethodInfo method, ParameterInfo[] parameterInfos, string wrapperName) { InvocationParameterInfo[] parameters = new InvocationParameterInfo[parameterInfos.Length]; for (int i = 0; i < parameterInfos.Length; i++) { ParameterInfo paramInfo = parameterInfos[i]; Type paramType = paramInfo.ParameterType; if (paramType.IsByRef) { paramType = paramType.GetElementType(); } InvocationParameterInfo invocationParamInfo = new InvocationParameterInfo(paramInfo.Name, i, paramType, ParameterType.ByVal); parameters[i] = invocationParamInfo; } #if NET2 return(new CallInfo(wrapperName, method, new ArrayList(), parameters, FastCall.GetMethodInvoker(method))); #else return(new CallInfo(wrapperName, method, new ArrayList(), parameters)); #endif }
public InterceptedParameter(InvocationParameterInfo parameterInfo, object[] rawParameters, int rawParameterIndex) { this.parameterInfo = parameterInfo; this.rawParameters = rawParameters; this.rawParameterIndex = rawParameterIndex; }
public InterceptedParameter(InvocationParameterInfo parameterInfo, object[] rawParameters, int rawParameterIndex) { this.parameterInfo = parameterInfo; this.rawParameters = rawParameters; this.rawParameterIndex = rawParameterIndex; }
internal static CallInfo CreateCallInfoForCtor(ConstructorInfo method, ParameterInfo[] parameterInfos, string wrapperName) { InvocationParameterInfo[] parameters = new InvocationParameterInfo[parameterInfos.Length+1]; parameters[0] = new InvocationParameterInfo("_state", 0, typeof(object), ParameterType.ByVal); for (int i = 0; i < parameterInfos.Length; i++) { ParameterInfo paramInfo = parameterInfos[i]; Type paramType = paramInfo.ParameterType; if (paramType.IsByRef) paramType = paramType.GetElementType(); InvocationParameterInfo invocationParamInfo = new InvocationParameterInfo(paramInfo.Name, i + 1, paramType, ParameterType.ByVal); parameters[i+1] = invocationParamInfo; } #if NET2 return new CallInfo(wrapperName, method, new ArrayList(), parameters, FastCall.GetMethodInvoker(method)); #else return new CallInfo(wrapperName,method, new ArrayList(),parameters); #endif }