Exemple #1
0
        private static string GenerateMethodWithRefOutOrNoParameters(MethodInfo baseMethod, string delegateCast, string argumentNameList,
                                                                     string outInitializers, string methodDescriptionWithOverride, string visibility,
                                                                     RequiresIsNewImplementation requiresIsNewImplementation,
                                                                     SortedSet <string> namespaces, bool isMake, bool hasEvents)
        {
            var requiresNew    = requiresIsNewImplementation == RequiresIsNewImplementation.Yes ? "new" : string.Empty;
            var returnTypeName = $"{baseMethod.ReturnType.GetFullName(namespaces, baseMethod.ReturnParameter)}";

            if (baseMethod.ReturnType != typeof(void))
            {
                var returnTypeAttributes = baseMethod.ReturnParameter.GetAttributes(true, namespaces);
                return(isMake ?
                       MethodTemplates.GetFunctionForMake(outInitializers, methodDescriptionWithOverride,
                                                          visibility, requiresNew, returnTypeAttributes, baseMethod.ReturnType) :
                       baseMethod.ReturnType.RequiresExplicitCast() ?
                       MethodTemplates.GetFunctionWithValueTypeReturnValueAndNoArguments(
                           baseMethod.MetadataToken, argumentNameList, returnTypeName,
                           delegateCast, outInitializers, methodDescriptionWithOverride, visibility,
                           requiresNew, returnTypeAttributes, hasEvents) :
                       MethodTemplates.GetFunctionWithReferenceTypeReturnValueAndNoArguments(
                           baseMethod.MetadataToken, argumentNameList, returnTypeName,
                           delegateCast, outInitializers, methodDescriptionWithOverride, visibility,
                           requiresNew, returnTypeAttributes, hasEvents));
            }
            else
            {
                return(isMake ?
                       MethodTemplates.GetActionMethodWithNoArgumentsForMake(outInitializers, methodDescriptionWithOverride, visibility) :
                       MethodTemplates.GetActionMethodWithNoArguments(baseMethod.MetadataToken, argumentNameList, delegateCast,
                                                                      outInitializers, methodDescriptionWithOverride, visibility, hasEvents));
            }
        }
Exemple #2
0
 internal MethodMockableResult(MethodInfo value, RequiresExplicitInterfaceImplementation requiresExplicitInterfaceImplementation,
                               RequiresIsNewImplementation requiresIsNewImplementation)
     : base(value, requiresExplicitInterfaceImplementation) =>
     this.RequiresNewImplementation = requiresIsNewImplementation;