public static string GetDocumentation(FieldInfo fieldInfo) { string key = XMLKeyComposer.GetKey(fieldInfo); loadedXmlDocumentation.TryGetValue(key, out string documentation); return(documentation ?? ""); }
public static string GetDocumentation(ConstructorInfo constructorInfo) { string key = XMLKeyComposer.GetKey(constructorInfo); loadedXmlDocumentation.TryGetValue(key, out string documentation); return(documentation ?? ""); }
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 ?? ""); }
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); }