/// <summary> /// Generates a <em><command:parameter></em> element for a single parameter. /// </summary> /// <param name="commentReader">Provides access to the XML Doc comments.</param> /// <param name="parameter">The parameter.</param> /// <param name="parameterSetName">The specific parameter set name, or <see cref="ParameterAttribute.AllParameterSets"/>.</param> /// <param name="reportWarning">Function used to log warnings.</param> /// <returns>A <em><command:parameter></em> element for the <paramref name="parameter"/>.</returns> private XElement GenerateParameterElement(ICommentReader commentReader, Parameter parameter, string parameterSetName, ReportWarning reportWarning) { var element = new XElement(commandNs + "parameter", new XAttribute("required", parameter.IsRequired(parameterSetName)), new XAttribute("globbing", parameter.SupportsGlobbing(parameterSetName)), new XAttribute("pipelineInput", parameter.GetIsPipelineAttribute(parameterSetName)), new XAttribute("position", parameter.GetPosition(parameterSetName)), new XElement(mamlNs + "name", parameter.Name), GenerateDescriptionElement(commentReader, parameter, reportWarning), commentReader.GetParameterValueElement(parameter, reportWarning), GenerateTypeElement(commentReader, parameter.ParameterType, true, reportWarning), commentReader.GetParameterDefaultValueElement(parameter), GetParameterEnumeratedValuesElement(parameter)); var aliasNames = parameter.Aliases.ToList(); if (aliasNames.Count > 0) { element.Add(new XAttribute("aliases", string.Join(",", aliasNames))); } return element; }
/// <summary> /// Generates a <em><command:parameter></em> element for a single parameter. /// </summary> /// <param name="commentReader">Provides access to the XML Doc comments.</param> /// <param name="parameter">The parameter.</param> /// <param name="parameterSetName">The specific parameter set name, or <see cref="ParameterAttribute.AllParameterSets"/>.</param> /// <param name="reportWarning">Function used to log warnings.</param> /// <returns>A <em><command:parameter></em> element for the <paramref name="parameter"/>.</returns> private XElement GenerateParameterElement(ICommentReader commentReader, Parameter parameter, string parameterSetName, ReportWarning reportWarning) { return new XElement(commandNs + "parameter", new XAttribute("required", parameter.IsRequired(parameterSetName)), new XAttribute("globbing", parameter.SupportsGlobbing(parameterSetName)), new XAttribute("pipelineInput", parameter.GetIsPipelineAttribute(parameterSetName)), new XAttribute("position", parameter.GetPosition(parameterSetName)), new XElement(mamlNs + "name", parameter.Name), commentReader.GetParameterDescriptionElement(parameter, reportWarning), commentReader.GetParameterValueElement(parameter, reportWarning), GenerateTypeElement(commentReader, parameter.ParameterType, true, reportWarning), commentReader.GetParameterDefaultValueElement(parameter)); }