コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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);
                }
            }
        }
コード例 #3
0
        /// <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);
                }
            }
        }
コード例 #4
0
        /// <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;
            }
        }