Changes all collections from collection builders to resolve the concrete instances lazily.

This means we don't have to inject Lazy<T> all over the place when dealing with
colleciton builders and circular references since this will automatically just work OOTB.
This in theory should also allocate less instances during startup.
This commit is contained in:
Shannon
2021-07-12 15:28:46 -06:00
parent 461a199d15
commit bc84ffe260
85 changed files with 327 additions and 274 deletions

View File

@@ -37,7 +37,6 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
where TEntity : class, IContentBase
where TRepository : class, IRepository
{
private readonly Lazy<PropertyEditorCollection> _propertyEditors;
private readonly DataValueReferenceFactoryCollection _dataValueReferenceFactories;
private readonly IEventAggregator _eventAggregator;
@@ -58,7 +57,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
ILanguageRepository languageRepository,
IRelationRepository relationRepository,
IRelationTypeRepository relationTypeRepository,
Lazy<PropertyEditorCollection> propertyEditors,
PropertyEditorCollection propertyEditors,
DataValueReferenceFactoryCollection dataValueReferenceFactories,
IDataTypeService dataTypeService,
IEventAggregator eventAggregator)
@@ -68,7 +67,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
LanguageRepository = languageRepository;
RelationRepository = relationRepository;
RelationTypeRepository = relationTypeRepository;
_propertyEditors = propertyEditors;
PropertyEditors = propertyEditors;
_dataValueReferenceFactories = dataValueReferenceFactories;
_eventAggregator = eventAggregator;
}
@@ -85,7 +84,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
protected IRelationRepository RelationRepository { get; }
protected IRelationTypeRepository RelationTypeRepository { get; }
protected PropertyEditorCollection PropertyEditors => _propertyEditors.Value;
protected PropertyEditorCollection PropertyEditors { get; }
#region Versions