Exemplo n.º 1
0
        protected virtual void WriteParameter(TextWriter writer, IEnumerable<ParameterSet> sets, Parameter parameter)
        {
            writer.Write('-');
            writer.Write(parameter.Name);
            writer.Write(' ');
            if (parameter.Type == typeof(Switch))
            {
                writer.WriteLine("[<" + typeof(Switch).Name + ">]");
            }
            else
            {
                writer.Write('<');
                writer.Write(parameter.Type.Name);
                writer.Write('>');
                writer.WriteLine();
            }

            writer.WriteLine();

            writer.Write("   ");
            writer.WriteLine(parameter.HelpMessage());

            writer.WriteLine();

            writer.WriteLine("   {0,-25}{1}", "Required?", parameter.GetAttribute<RequiredAttribute>() != null);
            writer.WriteLine("   {0,-25}{1}", "Position?", parameter.Position.HasValue ? parameter.Position.Value.ToString() : "named");
            string defValue;
            var defValueAttr = parameter.GetAttribute<DefaultValueAttribute>();

            if (defValueAttr == null)
                defValue = "None";
            else
                defValue = defValueAttr.Value.ToString();

            writer.WriteLine("   {0,-25}{1}", "Default value", defValue);


            writer.WriteLine("   {0,-25}{1}",
                             "Parameter sets",
                             string.Join(", ", sets.Where(s => s.Contains(parameter)).Select(s => s.Name)));
        }