Пример #1
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            // NOTE: No need to load the IoC package.  This is a responsibility of the IoC Provider.

            dependencyCollection.RegisterSingleton <IEnvironmentConfigurationProvider, EnvironmentConfigurationProvider>();
            dependencyCollection.RegisterSingleton <INullConfigurationProvider, NullConfigurationProvider>();

            // NOTE: This is not valid, because MemoryConfigurationProvider's constructor expects a Dictionary<string, string>.
            // dependencyCollection.RegisterSingleton<IMemoryConfigurationProvider, MemoryConfigurationProvider>();

            // NOTE: But this is valid:
            //dependencyCollection.RegisterSingleton<IMemoryConfigurationProvider>(provider => new MemoryConfigurationProvider(new Dictionary<string, string>
            //{
            //    {"key", "value"}
            //}));

            if (_configuration != null)
            {
                dependencyCollection.RegisterSingleton <IMemoryConfigurationProvider>(new MemoryConfigurationProvider(_configuration));
                dependencyCollection.AddSingletonToCollection <IConfigurationProvider, IMemoryConfigurationProvider>(provider => provider.ResolveDependency <IMemoryConfigurationProvider>());
            }

            dependencyCollection.AddSingletonToCollection <IConfigurationProvider, IEnvironmentConfigurationProvider>((provider) => {
                return(provider.ResolveDependency <IEnvironmentConfigurationProvider>());
            });

            dependencyCollection.RegisterSingleton <IConfigurationService, ConfigurationService>();

            dependencyCollection.RegisterSingleton(typeof(IConfigManager <>), typeof(DefaultConfigManager <>));
            dependencyCollection.RegisterSingleton(typeof(IConfig <>), typeof(ConfigLoader <>));
        }
Пример #2
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            dependencyCollection.RegisterSingleton <IFunnyQuoteProvider, FunnyQuoteProvider>();
            dependencyCollection.RegisterSingleton <IScaryQuoteProvider, ScaryQuoteProvider>();

            //dependencyCollection.RegisterSingleton<ISeriousQuoteProvider, SeriousQuoteProvider>();

            dependencyCollection.AddSingletonToCollection <IQuoteProvider, IFunnyQuoteProvider>(provider =>
                                                                                                provider.ResolveDependency <IFunnyQuoteProvider>());

            dependencyCollection.AddSingletonToCollection <IQuoteProvider, IScaryQuoteProvider>(provider =>
                                                                                                provider.ResolveDependency <IScaryQuoteProvider>());

            //dependencyCollection.AddSingletonToCollection<IQuoteProvider, ISeriousQuoteProvider>(provider =>
            // provider.ResolveDependency<ISeriousQuoteProvider>());
        }
Пример #3
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            dependencyCollection.LoadPackage(new XPike.Configuration.Package());

            dependencyCollection.RegisterSingleton <IAzureConfigurationProvider>(new AzureConfigurationProvider(_connectionString));
            dependencyCollection.AddSingletonToCollection <IConfigurationProvider, IAzureConfigurationProvider>(provider => provider.ResolveDependency <IAzureConfigurationProvider>());
        }
Пример #4
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            dependencyCollection.AddSingletonToCollection <ITenantContextProvider, DefaultTenantContextProvider>();
            dependencyCollection.RegisterSingleton <ITenantContextAccessor, TenantContextAccessor>();

            dependencyCollection.RegisterScoped <ITenantContext>(services =>
                                                                 services.ResolveDependency <ITenantContextAccessor>().TenantContext);
        }
Пример #5
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            dependencyCollection.LoadPackage(new Configuration.Package());

            dependencyCollection.RegisterSingleton <IAWSConfigurationProvider, AWSConfigurationProvider>();

            dependencyCollection.AddSingletonToCollection <IConfigurationProvider, IAWSConfigurationProvider>(services =>
                                                                                                              services.ResolveDependency <IAWSConfigurationProvider>());
        }
Пример #6
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            dependencyCollection.LoadPackage(new XPike.Metrics.Package());

            dependencyCollection.RegisterSingleton <IApplicationInsightsMetricsProvider, ApplicationInsightsMetricsProvider>();

            dependencyCollection.AddSingletonToCollection <IMetricsProvider, IApplicationInsightsMetricsProvider>(container =>
                                                                                                                  container.ResolveDependency <IApplicationInsightsMetricsProvider>());
        }
Пример #7
0
        public static IDependencyCollection AddSeriousQuotes(this IDependencyCollection collection)
        {
            collection.RegisterSingleton <ISeriousQuoteProvider, SeriousQuoteProvider>();

            collection.AddSingletonToCollection <IQuoteProvider, ISeriousQuoteProvider>(provider =>
                                                                                        provider.ResolveDependency <ISeriousQuoteProvider>());

            return(collection);
        }
Пример #8
0
        /// <summary>
        /// Registers the XPike.DefaultRequestContext dependencies in the DI container.
        /// </summary>
        /// <param name="dependencyCollection">The IDependencyCollection to add registrations to.</param>
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            /* Add necessary registrations from XPike.DefaultRequestContext */
            dependencyCollection.LoadPackage(new XPike.RequestContext.Package());

            /* Add IHttpRequestContextProvider to the collection */
            // NOTE: It is expected that an implementing library will also register as a singleton an implementation of IHttpRequestContextProvider.
            dependencyCollection.AddSingletonToCollection <IRequestContextProvider, IHttpRequestContextProvider>(container =>
                                                                                                                 container.ResolveDependency <IHttpRequestContextProvider>());
        }
Пример #9
0
        public void RegisterPackage(IDependencyCollection container)
        {
            container.LoadPackage(new XPike.Configuration.Package());

            container.RegisterSingleton <ISystemConfigurationProvider, SystemConfigurationProvider>();

            container.AddSingletonToCollection <IConfigurationProvider, ISystemConfigurationProvider>((provider) =>
            {
                return(provider.ResolveDependency <ISystemConfigurationProvider>());
            });
        }
Пример #10
0
        public static IDependencyCollection AddXPikeRequestContextTenantHeader(this IDependencyCollection collection, string headerName)
        {
            collection.LoadPackage(new XPike.MultiTenant.RequestContext.Package());

            RequestContextHeaderTenantContextProvider.HeaderName = headerName;

            collection.AddSingletonToCollection <ITenantContextProvider, IRequestContextHeaderTenantContextProvider>(container =>
                                                                                                                     container.ResolveDependency <IRequestContextHeaderTenantContextProvider>());

            return(collection);
        }
Пример #11
0
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            if (dependencyCollection == null)
            {
                throw new ArgumentNullException(nameof(dependencyCollection));
            }

            dependencyCollection.RegisterTransient <HttpMessageHandlerBuilder, XpikeHttpMessageHandlerBuilder>();

            dependencyCollection.RegisterSingleton <IHttpClientFactory, XpikeHttpClientFactory>();

            dependencyCollection.AddSingletonToCollection <IHttpMessageHandlerBuilderFilter, NullHttpMessageHandlerBuilderFilter>();
        }
Пример #12
0
        public void RegisterPackage(IDependencyCollection dependencies)
        {
            // Load other Packages we depend on...
            dependencies.LoadPackage(new XPike.Configuration.Package());

            // Register our implementations...
            dependencies.RegisterSingleton <IConfigurationSettingsProvider, ConfigurationSettingsProvider>();
            dependencies.RegisterSingleton <ISettingsService, SettingsService>();
            dependencies.RegisterSingleton(typeof(ISettingsManager <>), typeof(DefaultSettingsManager <>));
            dependencies.RegisterSingleton(typeof(ISettings <>), typeof(SettingsLoader <>));

            // Delegate mappings...

            // By default, use IConfigurationSettingsProvider, which loads Settings from the IConfigurationService.
            dependencies.AddSingletonToCollection <ISettingsProvider, IConfigurationSettingsProvider>(provider => provider.ResolveDependency <IConfigurationSettingsProvider>());
        }
Пример #13
0
        /// <summary>
        /// Registers the XPike.DefaultRequestContext dependencies in the DI container.
        /// </summary>
        /// <param name="dependencyCollection">The IDependencyCollection to add registrations to.</param>
        public void RegisterPackage(IDependencyCollection dependencyCollection)
        {
            /* Load the XPike.Logging package which we depend on. */
            dependencyCollection.LoadPackage(new XPike.Logging.Package());

            /* Register Singletons */
            dependencyCollection.RegisterSingleton <IDefaultRequestContextProvider, DefaultRequestContextProvider>();
            dependencyCollection.RegisterSingleton <IRequestContextAccessor, RequestContextAccessor>();

            /* Add Default Request Context Provider */
            dependencyCollection.AddSingletonToCollection <IRequestContextProvider, IDefaultRequestContextProvider>(container =>
                                                                                                                    container.ResolveDependency <IDefaultRequestContextProvider>());

            /* Add accessor for scoped injection of IRequestContext */
            dependencyCollection.RegisterScoped <IRequestContext>(services =>
                                                                  services.ResolveDependency <IRequestContextAccessor>().RequestContext);
        }
Пример #14
0
        public void RegisterPackage(IDependencyCollection container)
        {
            // Load other Packages we depend on.
            container.LoadPackage(new XPike.Configuration.Package(_staticConfig));

            // Register the XPike Configuration Provider for Microsoft.Extensions.Configuration
            if (_configuration == null)
            {
                container.RegisterSingleton <IMicrosoftConfigurationProvider, MicrosoftConfigurationProvider>();
            }
            else
            {
                container.RegisterSingleton <IMicrosoftConfigurationProvider>(new MicrosoftConfigurationProvider(_configuration));
            }

            // Set the provider to be the only one in the list of Providers used by the Configuration Service
            container.ResetCollection <IConfigurationProvider>();
            container.AddSingletonToCollection <IConfigurationProvider, IMicrosoftConfigurationProvider>(provider =>
                                                                                                         provider.ResolveDependency <IMicrosoftConfigurationProvider>());
        }