Table of Contents

Namespace McMaster.Extensions.CommandLineUtils.SourceGeneration

Classes

ArgumentMetadata

Metadata about a command argument, extracted at compile time or via reflection.

CommandMetadata

Metadata about a command from the [Command] attribute.

CommandMetadataRegistry

Registry for source-generated command metadata. Source generators register metadata providers here via module initializers.

DefaultMetadataResolver

Default implementation that checks the registry first, falls back to reflection.

HelpOptionMetadata

Metadata for the [HelpOption] attribute.

OptionMetadata

Metadata about a command option, extracted at compile time or via reflection.

SpecialPropertiesMetadata

Metadata for special well-known properties (Parent, Subcommand, RemainingArguments).

SubcommandMetadata

Metadata about a subcommand, extracted at compile time or via reflection.

VersionOptionMetadata

Metadata for the [VersionOption] attribute.

Interfaces

ICommandMetadataProvider

Provides metadata about a command model type. Implemented by both reflection-based and source-generated providers.

ICommandMetadataProvider<TModel>

Strongly-typed metadata provider for a specific model type.

IExecuteHandler

Handles execution of the OnExecute/OnExecuteAsync method without reflection.

IExecuteHandler<TModel>

Strongly-typed handler for executing the OnExecute/OnExecuteAsync method.

IMetadataResolver

Resolves command metadata for a type using either generated or reflection-based providers.

IModelFactory

Factory for creating model instances without reflection.

IModelFactory<TModel>

Strongly-typed factory for creating model instances without reflection.

IValidateHandler

Handles validation via OnValidate method without reflection.

IValidateHandler<TModel>

Strongly-typed handler for validation via OnValidate method.

IValidationErrorHandler

Handles validation errors via OnValidationError method without reflection.