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)); } }
internal MethodMockableResult(MethodInfo value, RequiresExplicitInterfaceImplementation requiresExplicitInterfaceImplementation, RequiresIsNewImplementation requiresIsNewImplementation) : base(value, requiresExplicitInterfaceImplementation) => this.RequiresNewImplementation = requiresIsNewImplementation;