public Invocation(ITargetInvocation targetInvocation, MethodInfo decoratedMethod, object[] arguments, IDynamicInterceptor[] interceptors)
{
this.targetInvocation = targetInvocation;
this.decoratedMethod = decoratedMethod;
this.arguments = arguments;
this.interceptors = interceptors;
this.parameterTypes = new Lazy<Type[]>(() => this.decoratedMethod.GetParameters().Select(x => x.ParameterType).ToArray());
this.genericArguments = new Lazy<Type[]>(() => this.decoratedMethod.GetGenericArguments());
}