Class CommandRegistry
Registry for command factories with auto-discovery. Discovers commands via reflection and provides lookup by name/alias.
Usage:
- Create registry instance
- Call DiscoverCommands() with assemblies to scan
- Use TryGetCommand() to find commands by name/alias
public class CommandRegistry
- Inheritance
-
objectCommandRegistry
Constructors
CommandRegistry(string)
Create a command registry.
public CommandRegistry(string logSubsystem = "core_commands")
Parameters
logSubsystemstringSubsystem name for logging (e.g., "game_hegemon", "starter_kit")
Properties
Count
Get count of registered commands.
public int Count { get; }
Property Value
- int
Methods
DiscoverCommands(params Assembly[])
Auto-discover and register all command factories in specified assemblies.
public void DiscoverCommands(params Assembly[] assemblies)
Parameters
assembliesAssembly[]Assemblies to scan for ICommandFactory implementations
GenerateHelpText()
Generate help text for all commands.
public string GenerateHelpText()
Returns
- string
GetAllCommands()
Get all registered commands.
public IEnumerable<CommandRegistry.CommandRegistration> GetAllCommands()
Returns
- IEnumerable<CommandRegistry.CommandRegistration>
RegisterFactory(ICommandFactory, CommandMetadataAttribute)
Manually register a command factory instance with metadata.
public bool RegisterFactory(ICommandFactory factory, CommandMetadataAttribute metadata)
Parameters
factoryICommandFactorymetadataCommandMetadataAttribute
Returns
- bool
RegisterFactory(Type)
Manually register a command factory type.
public bool RegisterFactory(Type factoryType)
Parameters
factoryTypeType
Returns
- bool
TryGetCommand(string, out CommandRegistration)
Try to get command registration by name or alias.
public bool TryGetCommand(string nameOrAlias, out CommandRegistry.CommandRegistration registration)
Parameters
nameOrAliasstringregistrationCommandRegistry.CommandRegistration
Returns
- bool