/// <summary> /// 获取AssemblyNote /// </summary> /// <param name="xmlFilePath">xml文件路径</param> /// <returns></returns> public static AssemblyNoteModel GetAssemblyNote(string xmlFilePath) { FileInfo fileInfo = new FileInfo(xmlFilePath); if (!File.Exists(xmlFilePath)) { return(null); } XmlHelper xmlHelper = new XmlHelper(xmlFilePath); AssemblyNoteModel assemblyNoteModel = xmlHelper.DeserializeNode <AssemblyNoteModel>("assembly"); assemblyNoteModel.ModuleName = fileInfo.Name.Replace(".xml", ".dll"); XmlNode memberListNode = xmlHelper.GetNode("members"); XmlNode memberNode = memberListNode.FirstChild; while (memberNode != null) { MemberNoteModel memberModel = GetMember(memberNode); assemblyNoteModel.MemberList.Add(memberModel); memberNode = memberNode.NextSibling; } return(assemblyNoteModel); }
/// <summary> /// 解析memberNode获取Member /// </summary> /// <param name="memberNode">member节点</param> /// <returns></returns> private static MemberNoteModel GetMember(XmlNode memberNode) { MemberNoteModel memberModel = new MemberNoteModel(); if (memberNode.Attributes != null) { foreach (XmlAttribute xmlAttribute in memberNode.Attributes) { if (xmlAttribute.Name == "name") { memberModel.Name = xmlAttribute.Value; break; } } } XmlNode nextNode = memberNode.FirstChild; while (nextNode != null) { string nodeText = nextNode.InnerText.Trim(); switch (nextNode.Name) { case "summary": memberModel.Summary = nodeText; break; case "param": string paramName = null; foreach (XmlAttribute xmlAttribute in nextNode.Attributes) { if (xmlAttribute.Name == "name") { paramName = xmlAttribute.Value; break; } } if (!string.IsNullOrEmpty(paramName) && !memberModel.ParamList.Keys.Contains(paramName)) { memberModel.ParamList.Add(paramName, nodeText); } break; case "returns": memberModel.Returns = nodeText; break; } nextNode = nextNode.NextSibling; } return(memberModel); }