public CommandInfo(
            [NotNull] string commandName,
            CommandType commandType,
            [NotNull] IEnumerable <ICommandParameterInfo> parameters,
            string displayName,
            string description)
        {
            if (commandName == null)
            {
                throw new ArgumentNullException("commandName");
            }
            if (!CommandNamesValidator.IsValidCommandName(commandName))
            {
                throw new ArgumentException(@"Имя команды имеет некорректный формат.", "commandName");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            _name       = commandName;
            _type       = commandType;
            _parameters = parameters.ToDictionary(
                parameter => parameter.Name,
                parameter => parameter,
                StringComparer.OrdinalIgnoreCase);
            _displayName = displayName;
            _description = description;
        }
        protected CommandMethodAttribute([NotNull] string commandName)
        {
            if (commandName == null)
            {
                throw new ArgumentNullException("commandName");
            }
            if (!CommandNamesValidator.IsValidCommandName(commandName))
            {
                throw new ArgumentException("Имя команды имеет некорректный формат.", "commandName");
            }

            _commandName = commandName;
        }