Exemplo n.º 1
0
        /// <summary>
        /// Returns information about the specified parameter on the specified method signature.
        /// </summary>
        /// <param name="index">An index into the list of method signatures.</param>
        /// <param name="parameter">An index into the parameter list of the specified method signature.</param>
        /// <param name="name">Returns the name of the parameter.</param>
        /// <param name="display">Returns the parameter name and type formatted for display.</param>
        /// <param name="description">Returns a string containing a description of the parameter.</param>
        public override void GetParameterInfo(int index, int parameter, out string name, out string display,
                                              out string description)
        {
            NVMethodNode    methodNode    = _methodNodes[index];
            NVParameterNode parameterNode = methodNode.Parameters[parameter];
            NVClassNode     classNode     = (NVClassNode)methodNode.Parent;

            name    = parameterNode.Name;
            display = string.Format("{0} {1}", parameterNode.Type.Name, parameterNode.Name);

            // Retrieve XML documentation
            XmlDocumentationProvider documentationProvider =
                new XmlDocumentationProvider(classNode.AssemblyFileName);

            description = documentationProvider.GetParameterDocumentation(
                classNode.FullName, methodNode.Name, parameterNode.Name);

            if (string.IsNullOrEmpty(description))
            {
                description = string.Format("Could not retrieve documentation for parameter '{0}'.",
                                            parameterNode.Name);
            }
        }