public IActionResult Get([FromServices] IGetMembers query, [FromQuery] MemberSearch search) { return(Ok(_executor.ExecuteQuery(query, search))); }
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); } }
/// <summary> /// 生成类型页面 /// </summary> /// <param name="memberItems">该类型包含的所有成员</param> /// <param name="type">类型包含信息(名称,页面文件名等)</param> protected abstract void CreateTypePage(IGetMembers memberItems, ContentTreeItem type);
/// <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 ); }