internal RestControllerMethodInfo(
            MethodInfo methodInfo,
            Func <object[]> constructorArgs,
            TypeWrapper typeWrapper)
        {
            constructorArgs.GuardNull(nameof(constructorArgs));
            _uriParser = new UriParser();
            _matchUri  = GetUriFromMethod(methodInfo);

            ReturnTypeWrapper         = typeWrapper;
            ControllerConstructorArgs = constructorArgs;
            MethodInfo = methodInfo;

            _validParameterTypes = GetValidParameterTypes();
            _parameterGetters    = GetParameterGetters(methodInfo);
            Verb = GetVerb();

            Type contentParameterType;

            HasContentParameter  = TryGetContentParameterType(methodInfo, out contentParameterType);
            ContentParameterType = contentParameterType;
        }