creates ServicesCompositionRoot
This commit is contained in:
@@ -9,12 +9,12 @@ namespace Umbraco.Core.DependencyInjection
|
||||
/// </summary>
|
||||
public sealed class ConfigurationCompositionRoot : ICompositionRoot
|
||||
{
|
||||
public void Compose(IServiceRegistry serviceRegistry)
|
||||
public void Compose(IServiceRegistry container)
|
||||
{
|
||||
serviceRegistry.Register<IUmbracoSettingsSection>(factory => UmbracoConfig.For.UmbracoSettings());
|
||||
serviceRegistry.Register<IContentSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().Content);
|
||||
serviceRegistry.Register<ITemplatesSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().Templates);
|
||||
serviceRegistry.Register<IRequestHandlerSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().RequestHandler);
|
||||
container.Register<IUmbracoSettingsSection>(factory => UmbracoConfig.For.UmbracoSettings());
|
||||
container.Register<IContentSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().Content);
|
||||
container.Register<ITemplatesSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().Templates);
|
||||
container.Register<IRequestHandlerSection>(factory => factory.GetInstance<IUmbracoSettingsSection>().RequestHandler);
|
||||
|
||||
//TODO: Add the other config areas...
|
||||
}
|
||||
|
||||
@@ -19,15 +19,16 @@ namespace Umbraco.Core.DependencyInjection
|
||||
{
|
||||
public void Compose(IServiceRegistry container)
|
||||
{
|
||||
container.Register<IDatabaseFactory>(factory => new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, factory.GetInstance<ILogger>()));
|
||||
container.Register<IDatabaseFactory>(factory => new DefaultDatabaseFactory(GlobalSettings.UmbracoConnectionName, factory.GetInstance<ILogger>()), new PerContainerLifetime());
|
||||
container.Register<DatabaseContext>(factory => GetDbContext(factory), new PerContainerLifetime());
|
||||
container.Register<SqlSyntaxProviders>(factory => SqlSyntaxProviders.CreateDefault(factory.GetInstance<ILogger>()));
|
||||
container.Register<IUnitOfWorkProvider, FileUnitOfWorkProvider>();
|
||||
container.Register<IDatabaseUnitOfWorkProvider, PetaPocoUnitOfWorkProvider>();
|
||||
container.Register<SqlSyntaxProviders>(factory => SqlSyntaxProviders.CreateDefault(factory.GetInstance<ILogger>()), new PerContainerLifetime());
|
||||
container.Register<IUnitOfWorkProvider, FileUnitOfWorkProvider>(new PerContainerLifetime());
|
||||
container.Register<IDatabaseUnitOfWorkProvider>(factory => new PetaPocoUnitOfWorkProvider(factory.GetInstance<ILogger>()), new PerContainerLifetime());
|
||||
container.Register<IMappingResolver>(factory => new MappingResolver(
|
||||
factory.GetInstance<IServiceContainer>(),
|
||||
factory.GetInstance<ILogger>(),
|
||||
() => factory.GetInstance<PluginManager>().ResolveAssignedMapperTypes()));
|
||||
() => factory.GetInstance<PluginManager>().ResolveAssignedMapperTypes()),
|
||||
new PerContainerLifetime());
|
||||
container.Register<RepositoryFactory>();
|
||||
container.Register<ISqlSyntaxProvider>(factory => factory.GetInstance<DatabaseContext>().SqlSyntax);
|
||||
container.Register<CacheHelper>(factory => CacheHelper.CreateDisabledCacheHelper(), "DisabledCache", new PerContainerLifetime());
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.Collections.Generic;
|
||||
using LightInject;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
using Umbraco.Core.Publishing;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Strings;
|
||||
|
||||
namespace Umbraco.Core.DependencyInjection
|
||||
{
|
||||
public sealed class ServicesCompositionRoot : ICompositionRoot
|
||||
{
|
||||
public void Compose(IServiceRegistry container)
|
||||
{
|
||||
container.Register<BasePublishingStrategy, PublishingStrategy>(new PerContainerLifetime());
|
||||
|
||||
//These will be replaced by the web boot manager when running in a web context
|
||||
container.Register<IEventMessagesFactory, TransientMessagesFactory>();
|
||||
|
||||
container.Register<ServiceContext>(factory => new ServiceContext(
|
||||
factory.GetInstance<RepositoryFactory>(),
|
||||
factory.GetInstance<IDatabaseUnitOfWorkProvider>(),
|
||||
factory.GetInstance<IUnitOfWorkProvider>(),
|
||||
factory.GetInstance<BasePublishingStrategy>(),
|
||||
factory.GetInstance<CacheHelper>(),
|
||||
factory.GetInstance<ILogger>(),
|
||||
factory.GetInstance<IEventMessagesFactory>(),
|
||||
factory.GetInstance<IEnumerable<IUrlSegmentProvider>>()),
|
||||
new PerContainerLifetime());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user