Exemplo n.º 1
0
        private string GenerateBases(DocumentationCategory category)
        {
            var builder    = new StringBuilder();
            var hasParent  = Type.BaseType != null && !_ignoredBases.Contains(Type.BaseType);
            var interfaces = Type.GetInterfaces().Where(t => !_ignoredInterfaces.Contains(t) && (Type.BaseType == null || !Type.BaseType.GetInterfaces().Contains(t)));

            if (hasParent || interfaces.Any())
            {
                builder.Append(category.Templates.BaseOpener);
            }

            if (hasParent)
            {
                builder.Append(category.GetLink(Type.BaseType));
            }

            var first = !hasParent;

            if (interfaces.Any())
            {
                foreach (var i in interfaces)
                {
                    if (!first)
                    {
                        builder.Append(category.Templates.BaseSeparator);
                    }

                    builder.Append(category.GetLink(i));
                    first = false;
                }
            }

            return(builder.ToString());
        }
Exemplo n.º 2
0
 public DocumentationType(Type type, DocumentationCategory category)
 {
     Type     = type;
     Name     = DocumentationGenerator.GetCleanName(type);
     RawName  = type.Name;
     NiceName = DocumentationGenerator.GetNiceName(Name);
     Id       = DocumentationGenerator.GetTypeId(type);
     Filename = GetFilename(category);
     Link     = category.GetLink(type);
 }
Exemplo n.º 3
0
        private string GenerateField(FieldInfo field, DocumentationCategory category)
        {
            var type     = category.GetLink(field.FieldType);
            var niceName = DocumentationGenerator.GetNiceName(field.Name);

            return(category.Templates.Field
                   .Replace(_memberTypeTag, type)
                   .Replace(_memberNameTag, field.Name)
                   .Replace(_memberNiceNameTag, niceName));
        }
Exemplo n.º 4
0
        private string GenerateParameter(ParameterInfo parameter, DocumentationCategory category)
        {
            var decorator = parameter.ParameterType.IsByRef ? (parameter.IsOut ? _outDecorator : _refDecorator) : "";

            var decorators = GenerateDecorators(category, decorator);
            var type       = category.GetLink(parameter.ParameterType);

            return(category.Templates.Parameter
                   .Replace(_parameterDecoratorsTag, decorators)
                   .Replace(_parameterNameTag, parameter.Name)
                   .Replace(_parameterTypeTag, type));
        }
Exemplo n.º 5
0
        private string GenerateProperty(PropertyInfo property, DocumentationCategory category)
        {
            var method   = GetAbstractDecorator(property.GetMethod);
            var readOnly = !IsIncluded(property.SetMethod, IncludedAccessLevels) ? _readOnlyDecorator : "";

            var decorators = GenerateDecorators(category, readOnly, method);
            var type       = category.GetLink(property.PropertyType);

            return(category.Templates.Property
                   .Replace(_memberDecoratorsTag, decorators)
                   .Replace(_memberTypeTag, type)
                   .Replace(_memberNameTag, property.Name));
        }
Exemplo n.º 6
0
        private string GenerateMethod(MethodInfo method, DocumentationCategory category)
        {
            var decorator = GetAbstractDecorator(method);

            var decorators = GenerateDecorators(category, decorator);
            var type       = category.GetLink(method.ReturnType);
            var generics   = GenerateGenerics(method.GetGenericArguments(), category);
            var parameters = GenerateParameters(method.GetParameters(), category);

            return(category.Templates.Method
                   .Replace(_memberDecoratorsTag, decorators)
                   .Replace(_memberTypeTag, type)
                   .Replace(_memberNameTag, method.Name + generics)
                   .Replace(_memberParametersTag, parameters));
        }
Exemplo n.º 7
0
 private string GenerateGenericParameter(Type type, DocumentationCategory category)
 {
     return(category.GetLink(type));
 }