public void SetDefaultCommand <TDefaultCommand>() where TDefaultCommand : class, ICommand { var defaultCommand = typeof(TDefaultCommand); // Initialize the default command. var settingsType = ConfigurationHelper.GetSettingsType(defaultCommand); DefaultCommand = new ConfiguredCommand(Constants.DefaultCommandName, defaultCommand, settingsType, true); // Register the default command. _registrar.RegisterCommand(defaultCommand, settingsType); }
public void AddCommand <TCommand>(string name) where TCommand : class, ICommandLimiter <TSettings> { var settingsType = ConfigurationHelper.GetSettingsType(typeof(TCommand)); var command = new ConfiguredCommand(name, typeof(TCommand), settingsType); _command.Children.Add(command); _registrar.RegisterCommand(typeof(TCommand), settingsType); }
public Configurator(ITypeRegistrar registrar, Type defaultCommand = null) { _registrar = registrar; Commands = new List <ConfiguredCommand>(); ShouldPropagateExceptions = false; ParsingMode = ParsingMode.Relaxed; if (defaultCommand != null) { if (!typeof(ICommand).IsAssignableFrom(defaultCommand)) { throw new ArgumentException($"The specified default command type '{defaultCommand}' is not a command.", nameof(defaultCommand)); } // Initialize the default command. var settingsType = ConfigurationHelper.GetSettingsType(defaultCommand); DefaultCommand = new ConfiguredCommand(Constants.DefaultCommandName, defaultCommand, settingsType, true); // Register the default command. _registrar.RegisterCommand(defaultCommand, settingsType); } }