Parameter types

Supports all types with a string constructor or where a TypeConverter is defined that can convert from a string. Includes, but not limited to:

  • string
  • char
  • bool
  • enum
  • short
  • int
  • long
  • decimal
  • double
  • Guid
  • Uri
  • FileInfo
  • DirectoryInfo

Also supports List<T>, IEnumerable<T> and Nullable<T> where T can be converted from string. Note: T[] is not currently supported.

These are applicable for both - Options and Arguments

Note for arguments: - There can be only one List argument in the method. It can be used with other non List type arguments or List type options. - If the method has a List type argument, it should be defined last in the order.

Adding support for new types#

In most cases, create a TypeConverter for your type

If you need

  • to override an existing TypeConverter
  • conditional logic based on argument metadata (custom attributes, etc)
  • the converter only for parsing parameters and not the business logic of your application

Implement ITypedArgumentTypeDescriptor or IGenericArgumentTypeDescriptor and register with AppSettings.ArgumentTypeDescriptors.Register(...).


Last update: February 22, 2020