Пример #1
0
        public static string GetDocumentation(FieldInfo fieldInfo)
        {
            string key = XMLKeyComposer.GetKey(fieldInfo);

            loadedXmlDocumentation.TryGetValue(key, out string documentation);
            return(documentation ?? "");
        }
Пример #2
0
        public static string GetDocumentation(ConstructorInfo constructorInfo)
        {
            string key = XMLKeyComposer.GetKey(constructorInfo);

            loadedXmlDocumentation.TryGetValue(key, out string documentation);
            return(documentation ?? "");
        }
Пример #3
0
        public static string GetDocumentation(Type type)
        {
            LoadXmlDocumentation(type.Assembly);  //Autoload xml based.
            string key = XMLKeyComposer.GetKey(type);

            loadedXmlDocumentation.TryGetValue(key, out string documentation);
            return(documentation ?? "");
        }
Пример #4
0
        public static DocContainer ReadClass(Type type, BindingFlags flags)
        {
            var result = new DocContainer();

            var classKey     = XMLKeyComposer.GetKey(type);
            var className    = type.Name;
            var classSummary = XMLDocReader.GetDocumentation(type);

            result.classes.Add(new DocClass(classKey, className, classSummary));


            // Methods
            var methods = type.GetMethods(flags);

            foreach (var method in methods)
            {
                // Skip: setter, getter, operator-overloader, etc
                if (method.IsSpecialName)
                {
                    continue;
                }

                var methodKey  = XMLKeyComposer.GetKey(method);
                var methodName = method.Name;
                var returnType = method.ReturnType.Name;
                var paramList  = new List <DocMethodParam>();

                var documentation = XMLDocReader.GetDocumentation(method);
                var methodSummary = XMLDocReader.ExtractXML(documentation, "summary");
                if (HasTag(TAG_NODOC, methodSummary))
                {
                    continue;
                }

                var prms = method.GetParameters();
                foreach (var prm in prms)
                {
                    var paramName    = prm.Name;
                    var paramType    = ParamType(prm);
                    var defaultValue = (prm.DefaultValue != null ? prm.DefaultValue.ToString() : null);
                    var paramSummary = XMLDocReader.GetDocumentation(prm);

                    var param = new DocMethodParam(paramName, paramType, defaultValue, paramSummary);
                    paramList.Add(param);
                }

                var mtd = new DocMethod(methodKey, className, methodName, returnType, methodSummary, paramList);
                if (HasTag(TAG_AUTOCOMPLETE, methodSummary))
                {
                    mtd.flagAutocomplete = true;
                }
                result.methods.Add(mtd);
            }

            // Properties
            var props = type.GetProperties(flags);

            foreach (var prop in props)
            {
                var propKey      = XMLKeyComposer.GetKey(prop);
                var itemName     = prop.Name;
                var propertyType = prop.PropertyType.Name;
                var propSummary  = XMLDocReader.GetDocumentation(prop);

                var prt = new DocProperty(propKey, className, itemName, propertyType, propSummary);
                result.properties.Add(prt);
            }

            // Fields
            var fields = type.GetFields(flags);

            foreach (var field in fields)
            {
                var fieldKey     = XMLKeyComposer.GetKey(field);
                var itemName     = field.Name;
                var fieldType    = field.FieldType.Name;
                var fieldSummary = XMLDocReader.GetDocumentation(field);

                var prt = new DocProperty(fieldKey, className, itemName, fieldType, fieldSummary);
                result.properties.Add(prt);
            }

            return(result);
        }