Exemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the SampleApplicationConfigProvider class.
 /// </summary>
 /// <param name="configProviderFactory">Factory method that can create a Config Provider instance</param>
 public SampleApplicationConfigProvider(IConfigProviderFactory configProviderFactory) : base(configProviderFactory)
 {
     AddEnvironmentMapping("RestUrl", IsValidUrl);
     AddEnvironmentMapping("ConnectionString", Exists);
     AddApplicationMapping("TimeOut", IsValidInteger);
     AddApplicationMapping("ConfigObject.Name", IsADeliciousTaco);
     AddApplicationMapping("ConfigObject.Number", IsValidInteger);
 }
        /// <summary>
        /// Uses CreateTypedConfig method to return strongly typed configuration object.
        /// </summary>
        /// <returns>A strongly typed configuration package</returns>
        /// <remarks>
        /// This method will always return the most recent configuration settings without the need to
        /// restart the consuming application.  For best results, call this method often rather than calling once at startup.
        /// </remarks>
        public virtual T GetConfiguration()
        {
            string callingAssemblyName = Assembly.GetCallingAssembly().GetName().Name;
            IConfigProviderFactory configProviderFactory = _configProviderFactory ?? new ConfigProviderFactory(callingAssemblyName);

            IConfigProvider applicationConfigProvider = configProviderFactory.Create(ApplicationComponentName, _applicationValidationMappings);
            ConfigRoot      applicationConfig         = applicationConfigProvider.GetAndValidateConfiguration();

            IConfigProvider environmentConfigProvider = configProviderFactory.Create(EnvironmentComponentName, _environmentValidationMappings);
            ConfigRoot      environmentConfig         = environmentConfigProvider.GetAndValidateConfiguration();

            // In order to keep the config names short and simple, we'll remove application/environment names as prefixes. The consuming application does not need this information.
            var originalApplicationConfigDictionary = applicationConfig.Data.ToDictionary();
            var originalEnvironmentConfigDictionary = environmentConfig.Data.ToDictionary();
            var modifiedApplicationConfigDictionary = originalApplicationConfigDictionary.ToDictionary(originalKey => RemoveComponentPrefix(originalKey.Key, string.Format("{0}.", ApplicationComponentName)), y => y.Value);
            var modifiedEnvironmentConfigDictionary = originalEnvironmentConfigDictionary.ToDictionary(originalKey => RemoveComponentPrefix(originalKey.Key, string.Format("{0}.", EnvironmentComponentName)), y => y.Value);

            return(CreateTypedConfig(modifiedApplicationConfigDictionary, modifiedEnvironmentConfigDictionary));
        }
 public ConfiguredDependencyAnalyzerFactory(MessageHandler traceMessageHandler)
 {
     _traceMessageHandler   = traceMessageHandler;
     _configProviderFactory = new ConfigProviderFactory(_traceMessageHandler);
 }
 public DependencyAnalyzerFactory(ITypeDependencyEnumerator typeDependencyEnumerator, MessageHandler traceMessageHandler)
 {
     _typeDependencyEnumerator = typeDependencyEnumerator ?? throw new ArgumentNullException(nameof(typeDependencyEnumerator));
     _traceMessageHandler      = traceMessageHandler;
     _configProviderFactory    = new ConfigProviderFactory(_traceMessageHandler);
 }
 /// <summary>
 /// Initializes a new instance of the ApplicationConfigProviderBase class.
 /// </summary>
 /// <param name="configProviderFactory">Factory method that can create a Config Provider instance</param>
 protected ApplicationConfigProviderBase(IConfigProviderFactory configProviderFactory = null)
 {
     _configProviderFactory = configProviderFactory;
 }