ValidateEnumValueAttribute Class

Validates whether the value of an enumeration type is one of the defined values for that type, and provides additional conversion options for enumeration types converted using the EnumConverter class.

Definition

Namespace: Ookii.CommandLine.Validation
Assembly: Ookii.CommandLine (in Ookii.CommandLine.dll) Version: 4.2.0+a4d3631e4dcc0970081ed435288efdebc1325f83
C#
public class ValidateEnumValueAttribute : ArgumentValidationWithHelpAttribute
Inheritance
Object    Attribute    ArgumentValidationAttribute    ArgumentValidationWithHelpAttribute    ValidateEnumValueAttribute

Remarks

The EnumConverter used to convert values for arguments with enumeration types allows conversion using the string representation of the underlying value, as well as the name. While names are checked against the members, any underlying value can be converted to an enumeration, regardless of whether it's a defined value for the enumeration.

For example, using the DayOfWeek enumeration, converting a string value of "9" would result in a value of (DayOfWeek)9, even though there is no enumeration member with that value.

This validator makes sure that the result of conversion is a valid value for the enumeration, by using the EnumIsDefined(Type, Object) method.

This validator can also alter the behavior of the EnumConverter class, through the CaseSensitive, AllowNumericValues, and AllowCommaSeparatedValues properties. These properties are only effective if the default EnumConverter class is used, or a custom converter that also checks them.

In addition, this validator provides usage help listing all the possible values. If the enumeration has a lot of values, you may wish to turn this off by setting the ArgumentValidationWithHelpAttributeIncludeInUsageHelp property to . Similarly, you can avoid listing all the values in the error message by setting the IncludeValuesInErrorMessage property to .

It is an error to use this validator on an argument whose type is not an enumeration.

Constructors

ValidateEnumValueAttributeInitializes a new instance of the ValidateEnumValueAttribute class

Properties

AllowCommaSeparatedValues Gets or sets a value that indicates whether the value provided by the user can use commas to provide multiple values that will be combined with bitwise-or.
AllowNonDefinedValues Gets or sets a value that indicates whether values that do not match one of the enumeration's defined values are allowed.
AllowNumericValues Gets or sets a value that indicates whether the value provided by the user can the underlying numeric type of the enumeration.
CaseSensitive Gets or sets a value that indicates whether enumeration value conversion is case sensitive.
ErrorCategory Gets the error category used for the CommandLineArgumentException when validation fails.
(Inherited from ArgumentValidationAttribute)
IncludeInUsageHelp Gets or sets a value that indicates whether this validator's help should be included in the argument's description.
(Inherited from ArgumentValidationWithHelpAttribute)
IncludeValuesInErrorMessage Gets or sets a value that indicates whether the possible values of the enumeration should be included in the error message if validation fails.
Mode Gets a value that indicates when validation will run.
(Inherited from ArgumentValidationAttribute)
TypeIdWhen implemented in a derived class, gets a unique identifier for this Attribute.
(Inherited from Attribute)

Methods

EqualsReturns a value that indicates whether this instance is equal to a specified object.
(Inherited from Attribute)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetErrorMessage Gets the error message to display if validation failed.
(Overrides ArgumentValidationAttributeGetErrorMessage(CommandLineArgument, Object))
GetHashCodeReturns the hash code for this instance.
(Inherited from Attribute)
GetTypeGets the Type of the current instance.
(Inherited from Object)
GetUsageHelp Gets the usage help message for this validator.
(Inherited from ArgumentValidationWithHelpAttribute)
GetUsageHelpCore Gets the usage help message for this validator.
(Overrides ArgumentValidationWithHelpAttributeGetUsageHelpCore(CommandLineArgument))
IsDefaultAttributeWhen overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.
(Inherited from Attribute)
IsSpanValid When overridden in a derived class, determines if the argument is valid.
(Inherited from ArgumentValidationAttribute)
IsValidDetermines if the argument's value is defined.
(Overrides ArgumentValidationAttributeIsValid(CommandLineArgument, Object))
MatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object.
(Inherited from Attribute)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
ToStringReturns a string that represents the current object.
(Inherited from Object)
Validate Validates the argument value, and throws an exception if validation failed.
(Inherited from ArgumentValidationAttribute)
ValidateSpan Validates the argument value, and throws an exception if validation failed.
(Inherited from ArgumentValidationAttribute)

Thread Safety

Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.

See Also