Esempio n. 1
0
        /// <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));
                }
            }
        }