コード例 #1
0
        /// <summary>Generates the 'see cref' section.</summary>
        /// <param name="text">The text.</param>
        /// <param name="referenceType">The reference type.</param>
        /// <returns>The <see cref="string"/> <seealso cref="string"/> .</returns>
        public static string GenerateCodeReference(string text, CodeReferenceTypes referenceType)
        {
            // Handle the code reference type to use
            string referenceText;

            switch (referenceType)
            {
            case CodeReferenceTypes.See:
            {
                referenceText = SeeCodeReference;
                break;
            }

            case CodeReferenceTypes.SeeAlso:
            {
                referenceText = SeeAlsoCodeReference;
                break;
            }

            default:
            {
                throw new ArgumentOutOfRangeException(nameof(referenceType), referenceType, null);
            }
            }

            return(string.Format("<{1}={0}{2}{0}/>", Constants.Quotes, referenceText, text));
        }
コード例 #2
0
        /// <summary>Generates the method.</summary>
        /// <param name="methodName">Name of the method.</param>
        /// <param name="returnTypeName">The name of return type.</param>
        /// <param name="parameters">The parameters.</param>
        /// <param name="referenceType">The reference type.</param>
        /// <param name="remarks">The remarks text.</param>
        /// <returns>The <see cref="string"/>.</returns>
        public static string GenerateMethod(string methodName, string returnTypeName, List <ParamInfo> parameters, CodeReferenceTypes referenceType, string remarks)
        {
            if (string.IsNullOrEmpty(methodName))
            {
                throw new ArgumentNullException(nameof(methodName), @"The method name cannot be null or empty!");
            }

            if (string.IsNullOrEmpty(returnTypeName))
            {
                throw new ArgumentNullException(nameof(returnTypeName), @"The return type name cannot be null or empty!");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters), @"The parameters list cannot be null!");
            }

            var words = TextUtil.SplitWords(methodName);

            // Handle the summary generation based on method words count.
            string summary;

            switch (words.Count)
            {
            case 0:
            case 1:
            {
                summary = $@"{methodName} this instance.";
                break;
            }

            case 2:
            {
                summary = $@"{words[0]} the {words[1]}.";
                break;
            }

            case 3:
            {
                summary = $@"{words[0]} the {words[1]} {words[2]}.";
                break;
            }

            default:
            {
                summary = $@"{methodName} this instance.";
                break;
            }
            }

            // Generate the summary text
            StringBuilder methodBuilder = new StringBuilder();

            methodBuilder.AppendLine(GenerateSummary(summary, remarks));

            // Generate the parameters text
            foreach (ParamInfo paramInfo in parameters)
            {
                methodBuilder.AppendLine(GenerateParameter(paramInfo));
            }

            // Generate the returns text for all types except 'void' types ignore
            if (!returnTypeName.Equals(typeof(void).Name.ToLower()))
            {
                methodBuilder.AppendLine(GenerateReturns(returnTypeName, referenceType));
            }

            return(methodBuilder.ToString());
        }
コード例 #3
0
 /// <summary>Generates the method.</summary>
 /// <param name="methodName">Name of the method.</param>
 /// <param name="returnType">Type of the return.</param>
 /// <param name="parameters">The parameters.</param>
 /// <param name="referenceType">The reference type.</param>
 /// <param name="remarks">The remarks text.</param>
 /// <returns>The <see cref="string"/>.</returns>
 public static string GenerateMethod(string methodName, Type returnType, List <ParamInfo> parameters, CodeReferenceTypes referenceType, string remarks)
 {
     return(GenerateMethod(methodName, returnType.Name.ToLower(), parameters, referenceType, remarks));
 }
コード例 #4
0
 /// <summary>Generates the returns tag.</summary>
 /// <param name="returnType">Type of the return.</param>
 /// <param name="referenceType">The reference type.</param>
 /// <returns>The <see cref="string"/>.</returns>
 public static string GenerateReturns(Type returnType, CodeReferenceTypes referenceType)
 {
     return(GenerateReturns(returnType.Name.ToLower(), referenceType));
 }
コード例 #5
0
        /// <summary>Generates the returns tag.</summary>
        /// <param name="returnTypeName">The name of return type.</param>
        /// <param name="referenceType">The reference type.</param>
        /// <returns>The <see cref="string"/>.</returns>
        public static string GenerateReturns(string returnTypeName, CodeReferenceTypes referenceType)
        {
            string codeReference = GenerateCodeReference(returnTypeName, referenceType);

            return(GenerateTag(ReturnsTag, $@"The {codeReference}."));
        }