/// <summary>
        /// Возвращает объект типа <typeparamref name="TConfiguration"/>, содержащий параметры модуля <typeparamref name="TModule"/>.
        /// Возвращенный объект находится в режиме "только для чтения" - изменение параметров невозможно, попытка выполнить set вызовет <see cref="InvalidOperationException"/>.
        /// Все объекты конфигурации, созданные путем вызова этого метода, манипулируют одним набором значений.
        /// То есть после изменения конфигурации путем вызова <see cref="ApplyConfiguration{TConfiguration}(TConfiguration)"/> новые значения автоматически доступны во всех ранее созданных в данном методе экземплярах конфигурации.
        /// </summary>
        /// <exception cref="InvalidOperationException">Возникает, если модуль <typeparamref name="TModule"/> не найден.</exception>
        public TConfiguration GetUsable <TConfiguration>() where TConfiguration : ModuleConfiguration <TModule>, new()
        {
            if (_valuesProviderUsable == null)
            {
                _valuesProviderUsable = AppCore.GetModulesManager().CreateValuesProviderForModule(_module);
            }

            var configuration = new TConfiguration()
            {
                _isReadonly = true, _valuesProvider = _valuesProviderUsable
            };

            return(configuration);
        }
 internal ModuleConfigurationManipulator(TModule module, ConfigurationValuesProvider valuesProviderUsable)
 {
     _module = module;
     _valuesProviderUsable = valuesProviderUsable;
 }