public static string GetCommentIdForType(Type type)
        {
            StringBuilder stringBuilder = new StringBuilder("T:");

            XmlCommentsIdHelper.AppendFullTypeName(type, stringBuilder, false);
            return(stringBuilder.ToString());
        }
        public static string GetCommentIdForProperty(PropertyInfo propertyInfo)
        {
            StringBuilder stringBuilder = new StringBuilder("P:");

            XmlCommentsIdHelper.AppendFullTypeName(propertyInfo.DeclaringType, stringBuilder, false);
            stringBuilder.Append(".");
            XmlCommentsIdHelper.AppendPropertyName(propertyInfo, stringBuilder);
            return(stringBuilder.ToString());
        }
        public static string GetCommentIdForMethod(MethodInfo methodInfo)
        {
            StringBuilder stringBuilder = new StringBuilder("M:");

            XmlCommentsIdHelper.AppendFullTypeName(methodInfo.DeclaringType, stringBuilder, false);
            stringBuilder.Append(".");
            XmlCommentsIdHelper.AppendMethodName(methodInfo, stringBuilder);
            return(stringBuilder.ToString());
        }
 private static void AppendMethodName(MethodInfo methodInfo, StringBuilder builder)
 {
     builder.Append(methodInfo.Name);
     ParameterInfo[] parameters = methodInfo.GetParameters();
     if (parameters.Length == 0)
     {
         return;
     }
     builder.Append("(");
     ParameterInfo[] array = parameters;
     for (int i = 0; i < array.Length; i++)
     {
         ParameterInfo parameterInfo = array[i];
         XmlCommentsIdHelper.AppendFullTypeName(parameterInfo.ParameterType, builder, true);
         builder.Append(",");
     }
     builder.Replace(",", ")", builder.Length - 1, 1);
 }
 public static void ExpandGenericArgsIfAny(Type type, StringBuilder builder)
 {
     if (type.IsGenericType)
     {
         StringBuilder stringBuilder    = new StringBuilder("{");
         Type[]        genericArguments = type.GetGenericArguments();
         Type[]        array            = genericArguments;
         for (int i = 0; i < array.Length; i++)
         {
             Type type2 = array[i];
             XmlCommentsIdHelper.AppendFullTypeName(type2, stringBuilder, true);
             stringBuilder.Append(",");
         }
         stringBuilder.Replace(",", "}", stringBuilder.Length - 1, 1);
         builder.Replace(string.Format("`{0}", genericArguments.Length), stringBuilder.ToString());
         return;
     }
     if (type.IsArray)
     {
         XmlCommentsIdHelper.ExpandGenericArgsIfAny(type.GetElementType(), builder);
     }
 }