/// <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; }