Ejemplo n.º 1
0
        private void LoadValues(IParameterCollection parameterCollection, TypeDefinition commandType)
        {
            var valueProperties = commandType.GetAllProperties()
                                  .WithAttribute(CommandLineParserTypeNames.ValueAttributeFullName)
                                  .Where(x => !x.GetAttribute(CommandLineParserTypeNames.ValueAttributeFullName).GetPropertyValueOrDefault <bool>(s_Hidden));

            foreach (var property in valueProperties)
            {
                var valueAttribute = property.GetAttribute(CommandLineParserTypeNames.ValueAttributeFullName);
                var position       = (int)valueAttribute.ConstructorArguments.Single().Value;

                var parameter = parameterCollection.AddPositionalParameter(position);
                parameter.Description          = valueAttribute.GetPropertyValueOrDefault <string?>(s_HelpText);
                parameter.Required             = valueAttribute.GetPropertyValueOrDefault <bool>(s_Required);
                parameter.DefaultValue         = GetDefaultValue(property, valueAttribute);
                parameter.AcceptedValues       = GetAcceptedValues(property);
                parameter.InformationalName    = valueAttribute.GetPropertyValueOrDefault <string?>(s_MetaName);
                parameter.ValuePlaceHolderName = valueAttribute.GetPropertyValueOrDefault <string?>(s_MetaValue);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Adds a new positional parameter to the application
 /// </summary>
 public PositionalParameterDocumentation AddPositionalParameter(int position) => m_Parameters.AddPositionalParameter(position);