コード例 #1
0
 public IActionResult Get([FromServices] IGetMembers query, [FromQuery] MemberSearch search)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }
コード例 #2
0
        private string GetTypeMemberCategorySection(IGetMembers memberItems, Type type, MemberXmlElement typeData, string category)
        {
            if (memberItems.GetMembers(category) != null)
            {
                string   secText        = null;
                string   sectionTitle   = NameToTitleDictionary[category] as string;
                HtmlText sectionContent = new HtmlText();
                foreach (ContentTreeItem memberItem in memberItems.GetMembers(category))
                {
                    MemberXmlElement memberData = DataProvider.GetMemberXmlNode(memberItem.Info);
                    string           summary    = "";
                    summary = GetChildNodeInnerText(memberData, "summary");
                    if (memberItem.Info.DeclaringType != type)
                    {
                        summary += string.Format(Resources.String56, memberItem.Info.DeclaringType.Name);
                    }
                    if (string.IsNullOrEmpty(summary))
                    {
                        summary = " ";
                    }
                    HtmlText imgs = new HtmlText();
                    imgs.AppendPre(tempImg.Render(NameToTitleDictionary[category], category + ".bmp"));
                    if (IsStatic(memberItem.Info))
                    {
                        imgs.AppendPre(" ");
                        imgs.AppendPre(tempImg.Render("static", "static.bmp"));
                    }

                    string mname = "";
                    mname += HtmlText.HtmlFormat(memberItem.Name);
                    MethodInfo method = memberItem.Info as MethodInfo;
                    //if (method != null)
                    if (method != null)
                    {
                        //泛型方法
                        //if (method.IsGenericMethod == true)
                        //{

                        if (memberData != null && memberData.Data != null)
                        {
                            XmlNodeList lst = memberData.Data.GetElementsByTagName("typeparam");

                            if (lst.Count > 0)
                            {
                                mname += HtmlText.HtmlFormat("<");
                                mname += (lst[0] as XmlElement).GetAttribute("name");
                                for (int i = 1; i < lst.Count; i++)
                                {
                                    mname += ("," + (lst[i] as XmlElement).GetAttribute("name"));
                                }
                                //泛型方法处理
                                //name = name.Replace("``" + elem.GetElementsByTagName("typeparam").Count, "");
                                mname += HtmlText.HtmlFormat(">");
                            }
                        }
                        //}

                        ParameterInfo[] parameters = method.GetParameters();
                        if (parameters.Length > 0)
                        {
                            string strParams = "";
                            foreach (ParameterInfo param in parameters)
                            {
                                if (string.IsNullOrEmpty(strParams))
                                {
                                    strParams = "" + SimpleParamName(DocumentBuilderUtility.GetTypeDefinition(param.ParameterType)) + "";
                                }
                                else
                                {
                                    strParams += "," + SimpleParamName(DocumentBuilderUtility.GetTypeDefinition(param.ParameterType)) + "";
                                }
                            }
                            mname += ("(" + strParams + ")");
                        }
                        else
                        {
                            mname += ("()");
                        }
                    }


                    string strRow = tempTypeTable_Row.Render(
                        imgs,
                        memberItem.FileName,
                        //HtmlText.HtmlFormat(memberItem.Name),
                        mname,
                        summary
                        );
                    sectionContent.AppendPre(strRow);
                }
                if (sectionContent.Length > 0)
                {
                    secText = CreateTableSection(category, sectionTitle, sectionContent.ToString());
                }
                return(secText);
            }
            else
            {
                return(null);
            }
        }
コード例 #3
0
 /// <summary>
 /// 生成类型页面
 /// </summary>
 /// <param name="memberItems">该类型包含的所有成员</param>
 /// <param name="type">类型包含信息(名称,页面文件名等)</param>
 protected abstract void CreateTypePage(IGetMembers memberItems, ContentTreeItem type);
コード例 #4
0
        /// <summary>
        /// 生成类型页面
        /// </summary>
        /// <param name="memberItems">该类型包含的所有成员</param>
        /// <param name="typeItem">类型包含信息(名称,页面文件名等)</param>
        protected override void CreateTypePage(IGetMembers memberItems, ContentTreeItem typeItem)
        {
            HtmlText pageContent = new HtmlText();
            Type     type        = typeItem.Info as Type;

            MemberXmlElement typeData = DataProvider.GetMemberXmlNode(type);
            int secID = 0;

            foreach (PageSection section in TypePageSections)
            {
                string secText = null;
                switch (section.SectionType)
                {
                case PageSectionType.Constructor:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "Constructor");
                    break;

                case PageSectionType.PublicMethod:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PublicMethod");
                    break;

                case PageSectionType.ProtectedMethod:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "ProtectedMethod");
                    break;

                case PageSectionType.PrivateMethod:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PrivateMethod");
                    break;

                case PageSectionType.PublicProperty:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PublicProperty");
                    break;

                case PageSectionType.ProtectedProperty:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "ProtectedProperty");
                    break;

                case PageSectionType.PrivateProperty:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PrivateProperty");
                    break;

                case PageSectionType.PublicField:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PublicField");
                    break;

                case PageSectionType.ProtectedField:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "ProtectedField");
                    break;

                case PageSectionType.PrivateField:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "PrivateField");
                    break;

                case PageSectionType.Event:
                    secText = GetTypeMemberCategorySection(memberItems, type, typeData, "Event");
                    break;

                case PageSectionType.Remarks:
                {
                    if (typeData != null)
                    {
                        HtmlText remarks = new HtmlText();
                        remarks.AppendPre(GetChildNodeInnerText(typeData, "remarks"));
                        if (remarks.Length > 0)
                        {
                            Hashtable sectionValues = new Hashtable();
                            sectionValues["ID"]      = "remarks";
                            sectionValues["Title"]   = Resources.String42;
                            sectionValues["Content"] = tempRemarks.Render(remarks);
                            secText = tempSection.Render(sectionValues);
                        }
                    }
                    break;
                }

                case PageSectionType.Example:
                {
                    if (typeData != null)
                    {
                        HtmlText example = new HtmlText();
                        example.AppendPre(GetChildNodeInnerText(typeData, "example"));
                        if (example.Length > 0)
                        {
                            Hashtable sectionValues = new Hashtable();
                            sectionValues["ID"]      = "example";
                            sectionValues["Title"]   = Resources.String43;
                            sectionValues["Content"] = tempRemarks.Render(example);
                            secText = tempSection.Render(sectionValues);
                        }
                    }
                    break;
                }

                case PageSectionType.FromXML:
                {
                    if (typeData != null)
                    {
                        string text = GetChildNodeInnerText(typeData, section.XmlSource);
                        if (!string.IsNullOrEmpty(text))
                        {
                            Hashtable sectionValues = new Hashtable();
                            sectionValues["ID"]      = "SEC" + secID.ToString("00");
                            sectionValues["Title"]   = section.Name;
                            sectionValues["Content"] = text;
                            secText = tempSection.Render(sectionValues);
                        }
                    }
                    break;
                }
                }
                if (!string.IsNullOrEmpty(secText))
                {
                    pageContent.AppendPre(secText);
                }
                secID++;
            }

            Hashtable values = new Hashtable();

            values["CollapseAll"] = Resources.strCollapseAll;
            values["ExpandAll"]   = Resources.strExpandAll;
            values["PIC"]         = Resources.strPic;
            values["Title"]       = HtmlText.HtmlFormat(DocumentBuilderUtility.GetTypeDefinition(type, false)) + " " + NameToTypeDictionary[typeItem.Parent.Name];
            values["Summary"]     = GetChildNodeInnerText(typeData, "summary");
            values["Content"]     = pageContent;
            values["Encoding"]    = TargetEncoding.HeaderName;
            tempPage.SaveAs(
                HtmlFileDirectory + "\\" + typeItem.FileName,
                TargetEncoding,
                values
                );
        }