RegisterUnique

This commit is contained in:
Stephan
2018-11-29 10:35:16 +01:00
parent e9de6c1fc9
commit c6891c6c70
63 changed files with 520 additions and 602 deletions

View File

@@ -48,16 +48,16 @@ namespace Umbraco.Core.Runtime
composition.WithCollectionBuilder<MapperCollectionBuilder>().AddCoreMappers();
// register the scope provider
composition.RegisterSingleton<ScopeProvider>(); // implements both IScopeProvider and IScopeAccessor
composition.RegisterSingleton<IScopeProvider>(f => f.GetInstance<ScopeProvider>());
composition.RegisterSingleton<IScopeAccessor>(f => f.GetInstance<ScopeProvider>());
composition.RegisterUnique<ScopeProvider>(); // implements both IScopeProvider and IScopeAccessor
composition.RegisterUnique<IScopeProvider>(f => f.GetInstance<ScopeProvider>());
composition.RegisterUnique<IScopeAccessor>(f => f.GetInstance<ScopeProvider>());
// register database builder
// *not* a singleton, don't want to keep it around
composition.Register<DatabaseBuilder>();
// register manifest parser, will be injected in collection builders where needed
composition.RegisterSingleton<ManifestParser>();
composition.RegisterUnique<ManifestParser>();
// register our predefined validators
composition.WithCollectionBuilder<ManifestValueValidatorCollectionBuilder>()
@@ -71,11 +71,11 @@ namespace Umbraco.Core.Runtime
// properties and parameters derive from data editors
composition.WithCollectionBuilder<DataEditorCollectionBuilder>()
.Add(() => composition.TypeLoader.GetDataEditors());
composition.RegisterSingleton<PropertyEditorCollection>();
composition.RegisterSingleton<ParameterEditorCollection>();
composition.RegisterUnique<PropertyEditorCollection>();
composition.RegisterUnique<ParameterEditorCollection>();
// register a server registrar, by default it's the db registrar
composition.RegisterSingleton<IServerRegistrar>(f =>
composition.RegisterUnique<IServerRegistrar>(f =>
{
if ("true".InvariantEquals(ConfigurationManager.AppSettings["umbracoDisableElectionForSingleServer"]))
return new SingleServerRegistrar(f.GetInstance<IRuntimeState>());
@@ -87,7 +87,7 @@ namespace Umbraco.Core.Runtime
// by default we'll use the database server messenger with default options (no callbacks),
// this will be overridden by either the legacy thing or the db thing in the corresponding
// components in the web project - fixme - should obsolete the legacy thing
composition.RegisterSingleton<IServerMessenger>(factory
composition.RegisterUnique<IServerMessenger>(factory
=> new DatabaseServerMessenger(
factory.GetInstance<IRuntimeState>(),
factory.GetInstance<IScopeProvider>(),
@@ -105,9 +105,9 @@ namespace Umbraco.Core.Runtime
composition.WithCollectionBuilder<PropertyValueConverterCollectionBuilder>()
.Append(composition.TypeLoader.GetTypes<IPropertyValueConverter>());
composition.RegisterSingleton<IPublishedContentTypeFactory, PublishedContentTypeFactory>();
composition.RegisterUnique<IPublishedContentTypeFactory, PublishedContentTypeFactory>();
composition.RegisterSingleton<IShortStringHelper>(factory
composition.RegisterUnique<IShortStringHelper>(factory
=> new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(factory.GetInstance<IUmbracoSettingsSection>())));
composition.WithCollectionBuilder<UrlSegmentProviderCollectionBuilder>()
@@ -116,10 +116,10 @@ namespace Umbraco.Core.Runtime
composition.WithCollectionBuilder<PostMigrationCollectionBuilder>()
.Add(() => composition.TypeLoader.GetTypes<IPostMigration>());
composition.RegisterSingleton<IMigrationBuilder>(factory => new MigrationBuilder(factory));
composition.RegisterUnique<IMigrationBuilder>(factory => new MigrationBuilder(factory));
// by default, register a noop factory
composition.RegisterSingleton<IPublishedModelFactory, NoopPublishedModelFactory>();
composition.RegisterUnique<IPublishedModelFactory, NoopPublishedModelFactory>();
}
internal void Initialize(IEnumerable<Profile> mapperProfiles)