public PositionalArgument(PropertyInfo underlyingProperty) { this.underlyingProperty = underlyingProperty; var nameAttribute = underlyingProperty.GetCustomAttribute<NameAttribute>(); if(nameAttribute != null) { Name = nameAttribute.LongName; } else { Name = char.ToLower(underlyingProperty.Name[0]) + underlyingProperty.Name.Substring(1); } }