Merge remote-tracking branch 'origin/v10/dev' into v10/feature/nullable-reference-types-in-Umbraco-Core
# Conflicts: # build/build.ps1 # src/Umbraco.Core/Configuration/ConfigConnectionString.cs # src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs # src/Umbraco.Core/Install/InstallSteps/TelemetryIdentifierStep.cs # src/Umbraco.Core/Models/ContentType.cs # src/Umbraco.Infrastructure/Migrations/Install/DatabaseBuilder.cs # tests/Umbraco.Tests.AcceptanceTest/package.json
This commit is contained in:
@@ -31,7 +31,7 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
|
||||
IProfiler Profiler { get; }
|
||||
AppCaches AppCaches { get; }
|
||||
TBuilder WithCollectionBuilder<TBuilder>() where TBuilder : ICollectionBuilder, new();
|
||||
TBuilder WithCollectionBuilder<TBuilder>() where TBuilder : ICollectionBuilder;
|
||||
void Build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,8 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
.Append<ContentTypeListViewContentAppFactory>()
|
||||
.Append<ContentTypePermissionsContentAppFactory>()
|
||||
.Append<ContentTypeTemplatesContentAppFactory>()
|
||||
.Append<MemberEditorContentAppFactory>();
|
||||
.Append<MemberEditorContentAppFactory>()
|
||||
.Append<DictionaryContentAppFactory>();
|
||||
|
||||
// all built-in finders in the correct order,
|
||||
// devs can then modify this list on application startup
|
||||
|
||||
@@ -90,6 +90,8 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
.AddUmbracoOptions<ContentDashboardSettings>()
|
||||
.AddUmbracoOptions<HelpPageSettings>();
|
||||
|
||||
builder.Services.AddSingleton<IConfigureOptions<ConnectionStrings>, ConfigureConnectionStrings>();
|
||||
|
||||
builder.Services.Configure<RequestHandlerSettings>(options => options.MergeReplacements(builder.Config));
|
||||
|
||||
return builder;
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
/// <typeparam name="TBuilder">The type of the collection builder.</typeparam>
|
||||
/// <returns>The collection builder.</returns>
|
||||
public TBuilder WithCollectionBuilder<TBuilder>()
|
||||
where TBuilder : ICollectionBuilder, new()
|
||||
where TBuilder : ICollectionBuilder
|
||||
{
|
||||
Type typeOfBuilder = typeof(TBuilder);
|
||||
|
||||
@@ -112,7 +112,22 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
return (TBuilder)o;
|
||||
}
|
||||
|
||||
var builder = new TBuilder();
|
||||
TBuilder builder;
|
||||
|
||||
if (typeof(TBuilder).GetConstructor(Type.EmptyTypes) != null)
|
||||
{
|
||||
builder = Activator.CreateInstance<TBuilder>();
|
||||
}
|
||||
else if (typeof(TBuilder).GetConstructor(new[] { typeof(IUmbracoBuilder) }) != null)
|
||||
{
|
||||
// Handle those collection builders which need a reference to umbraco builder i.e. DistributedLockingCollectionBuilder.
|
||||
builder = (TBuilder)Activator.CreateInstance(typeof(TBuilder), this);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException("A CollectionBuilder must have either a parameterless constructor or a constructor whose only parameter is of type IUmbracoBuilder");
|
||||
}
|
||||
|
||||
_builders[typeOfBuilder] = builder;
|
||||
return builder;
|
||||
}
|
||||
@@ -265,6 +280,7 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
Services.AddSingleton<IValueEditorCache, ValueEditorCache>();
|
||||
|
||||
// Register telemetry service used to gather data about installed packages
|
||||
Services.AddUnique<ISiteIdentifierService, SiteIdentifierService>();
|
||||
Services.AddUnique<ITelemetryService, TelemetryService>();
|
||||
|
||||
Services.AddUnique<IKeyValueService, KeyValueService>();
|
||||
@@ -291,6 +307,7 @@ namespace Umbraco.Cms.Core.DependencyInjection
|
||||
Services.AddUnique<IRelationService, RelationService>();
|
||||
Services.AddUnique<IMemberTypeService, MemberTypeService>();
|
||||
Services.AddUnique<INotificationService, NotificationService>();
|
||||
Services.AddUnique<ITrackedReferencesService, TrackedReferencesService>();
|
||||
Services.AddUnique<ExternalLoginService>(factory => new ExternalLoginService(
|
||||
factory.GetRequiredService<IScopeProvider>(),
|
||||
factory.GetRequiredService<ILoggerFactory>(),
|
||||
|
||||
Reference in New Issue
Block a user