/// <summary> /// Creates a new xml docs object for a given symbol /// </summary> /// <param name="fromSymbol">The symbol to use</param> public SourceCommentsXmlDocumentation(ISymbol fromSymbol) { string comments = fromSymbol.GetDocumentationCommentXml(); if (!string.IsNullOrWhiteSpace(comments)) { try { XmlDocument doc = new XmlDocument(); doc.LoadXml(comments); // Summary string text = doc.SelectSingleNode("member/summary")?.InnerText ?? ""; Summary = text.Trim(); text = doc.SelectSingleNode("member/returns")?.InnerText ?? ""; Returns = text.Trim(); foreach (XmlNode oneParamNode in doc.SelectNodes("member/param")) { ParamListProtected.Add(oneParamNode.Attributes["name"].Value, oneParamNode.InnerText); } } catch { // can't do anything... the XML is malformed } } }
/// <summary> /// Creates xml doc from an documentation node for the member /// </summary> /// <param name="fromXmlNode">the xml node</param> public ExternalReferenceXmlDocumentation(XmlNode fromXmlNode) { Summary = GetTextIfExists(fromXmlNode, "summary"); Returns = GetTextIfExists(fromXmlNode, "returns"); XmlNodeList paramList = fromXmlNode.SelectNodes("param"); foreach (XmlNode paramNode in paramList) { string name = paramNode.Attributes["name"]?.Value; if (!string.IsNullOrEmpty(name) && !ParamListProtected.ContainsKey(name)) { ParamListProtected.Add(name, CleanWhitespace(paramNode.InnerText)); } } }