/// <summary> /// Gets the string. /// </summary> /// <param name="entryType">Type of the entry.</param> /// <returns></returns> public static String GetString(this memberRegistryEntryType entryType) { switch (entryType) { case memberRegistryEntryType.entry_field: return(STR_F); break; case memberRegistryEntryType.entry_method: return(STR_M); break; default: case memberRegistryEntryType.entry_namespace: return(STR_N); break; case memberRegistryEntryType.entry_property: return(STR_P); break; case memberRegistryEntryType.entry_type: return(STR_T); break; case memberRegistryEntryType.entry_unknown: return(STR_U); } }
/// <summary> /// Loads C# XML documentation from the file /// </summary> /// <param name="source">The source.</param> /// <param name="log">The log.</param> public void LoadXML(XmlDocument source, ILogBuilder log = null) { XmlNodeList members = source.SelectNodes("member"); foreach (XmlNode node in members) { String stringPath = node.Attributes[nameof(memberRegistryEntry.name)].Value; Match mch = memberRegistryTools.regex_SelectMethodPath.Match(stringPath); memberRegistryEntryType memberType = memberRegistryEntryType.entry_unknown; String _path = ""; String _name = ""; foreach (Group mc in mch.Groups) { switch (mc.Index) { case 1: memberType = memberRegistryTools.GetEnum(mc.Value); break; case 2: _path = mc.Value; break; case 3: _name = mc.Value.Replace(".", "_"); _name = _name.Replace(",", "_"); _path += "_" + _name; break; } } memberRegistryEntry entry = AddOrGetByPath(_path); if (entry.member == null) { entry.memberType = memberType; entry.deployNode(node); } if (log != null) { log.log("XML documentation loaded for: " + stringPath); } } }
/// <summary> /// Loads the assembly. /// </summary> /// <param name="assembly">The assembly.</param> /// <param name="log">The log.</param> public void LoadAssembly(Assembly assembly, ILogBuilder log = null) { foreach (Type t in assembly.GetTypes()) { foreach (var m in t.GetMembers(settings.membersFilter)) { String stringPath = memberRegistryTools.GetXMLMemberName(m, true); memberRegistryEntryType memberType = memberRegistryTools.ToMemberType(m.MemberType); memberRegistryEntry entry = AddOrGetByPath(stringPath); if (entry.member == null) { entry.memberType = memberType; entry.deployMember(m); } } if (log != null) { log.log("Type reflection data gathered... " + t.Name); } } }
/// <summary> /// Performs an implicit conversion from <see cref="memberRegistryEntryType"/> to <see cref="MemberTypes"/>. /// </summary> /// <param name="entryType">Type of the entry.</param> /// <returns> /// The result of the conversion. /// </returns> public static MemberTypes ToMemberType(this memberRegistryEntryType entryType) { switch (entryType) { case memberRegistryEntryType.entry_field: return(MemberTypes.Field); break; case memberRegistryEntryType.entry_method: return(MemberTypes.Method); break; case memberRegistryEntryType.entry_namespace: return(MemberTypes.Custom); break; case memberRegistryEntryType.entry_property: return(MemberTypes.Property); break; case memberRegistryEntryType.entry_type: return(MemberTypes.TypeInfo); break; default: case memberRegistryEntryType.entry_unknown: return(MemberTypes.Custom); break; } }