文檔繼續完善整理中。。。。。。 c.DocumentFilter<SwaggerDocTag>(); /// <summary> /// Swagger註釋幫助類 /// </summary> public class SwaggerDocTag : IDocumentFilter { /// <s ...
文檔繼續完善整理中。。。。。。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
c.DocumentFilter<SwaggerDocTag>(); /// <summary> /// Swagger註釋幫助類 /// </summary> public class SwaggerDocTag : IDocumentFilter { /// <summary> /// 添加附加註釋 /// </summary> public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) { //swaggerDoc.tags = new List<Tag> //{ // //添加對應的控制器描述 這個是我好不容易在issues裡面翻到的 // new Tag { name = "Home", description = "後臺" }, // new Tag { name = "Client", description = "客戶端" }, // new Tag { name = "System", description = "系統" } //}; swaggerDoc.tags = GetControllerDesc(); } /// <summary> /// 從xml註釋中讀取控制器註釋 /// </summary> /// <returns></returns> private List<Tag> GetControllerDesc() { List<Tag> tagList = new List<Tag>(); var xmlpath = string.Format(string.Format("{0}/bin/Eternal.WebAPI.xml", System.AppDomain.CurrentDomain.BaseDirectory)); if (!File.Exists(xmlpath))//檢查xml註釋文件是否存在 return tagList; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlpath); string memberName = string.Empty;//xml三級節點的name屬性值 string controllerName = string.Empty;//控制器完整名稱 string key = string.Empty;//控制器去Controller名稱 string value = string.Empty;//控制器註釋 foreach (XmlNode node in xmlDoc.SelectNodes("//member"))//迴圈三級節點member { memberName = node.Attributes["name"].Value; if (memberName.StartsWith("T:"))//T:開頭的代表類 { string[] arrPath = memberName.Split('.'); controllerName = arrPath[arrPath.Length - 1]; if (controllerName.EndsWith("Controller"))//Controller結尾的代表控制器 { XmlNode summaryNode = node.SelectSingleNode("summary");//註釋節點 key = controllerName.Remove(controllerName.Length - "Controller".Length, "Controller".Length); if (summaryNode != null && !string.IsNullOrEmpty(summaryNode.InnerText) && !tagList.Contains(new Tag { name = key })) { value = summaryNode.InnerText.Trim(); tagList.Add(new Tag { name = key, description = value }); } } } } return tagList; }swagger顯示控制器註釋