Resvolution - CultureDictionaryFactoryResolver
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using LightInject;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Dictionary;
|
||||
using Umbraco.Core.Models.PublishedContent;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Strings;
|
||||
@@ -74,6 +75,9 @@ namespace Umbraco.Core.DependencyInjection
|
||||
public static IServerRegistrar ServerRegistrar
|
||||
=> Container.GetInstance<IServerRegistrar>();
|
||||
|
||||
public static ICultureDictionaryFactory CultureDictionaryFactory
|
||||
=> Container.GetInstance<ICultureDictionaryFactory>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
using System;
|
||||
using System.Linq.Expressions;
|
||||
using System.ComponentModel;
|
||||
using LightInject;
|
||||
using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Core.Dictionary
|
||||
{
|
||||
/// <summary>
|
||||
/// Resolves the current CultureDictionaryFactory
|
||||
/// </summary>
|
||||
public sealed class CultureDictionaryFactoryResolver : ContainerSingleObjectResolver<CultureDictionaryFactoryResolver, ICultureDictionaryFactory>
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes the resolver to use IoC
|
||||
/// </summary>
|
||||
/// <param name="container"></param>
|
||||
internal CultureDictionaryFactoryResolver(IServiceContainer container)
|
||||
: base(container)
|
||||
{ }
|
||||
|
||||
internal CultureDictionaryFactoryResolver(ICultureDictionaryFactory factory)
|
||||
: base(factory)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the resolver to use IoC
|
||||
/// </summary>
|
||||
/// <param name="container"></param>
|
||||
/// <param name="implementationType"></param>
|
||||
internal CultureDictionaryFactoryResolver(IServiceContainer container, Func<IServiceFactory, ICultureDictionaryFactory> implementationType)
|
||||
: base(container, implementationType)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Can be used by developers at runtime to set their ICultureDictionaryFactory at app startup
|
||||
/// </summary>
|
||||
/// <param name="factory"></param>
|
||||
public void SetDictionaryFactory(ICultureDictionaryFactory factory)
|
||||
{
|
||||
Value = factory;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the ICultureDictionaryFactory
|
||||
/// </summary>
|
||||
public ICultureDictionaryFactory Factory
|
||||
{
|
||||
get { return Value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Umbraco.Core.DependencyInjection;
|
||||
using Umbraco.Core.Dictionary;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
@@ -97,13 +98,7 @@ namespace Umbraco.Core.Services
|
||||
return cultureDictionary[text].IfNullOrWhiteSpace(text);
|
||||
}
|
||||
|
||||
private static ICultureDictionary CultureDictionary
|
||||
{
|
||||
get
|
||||
{
|
||||
return _cultureDictionary
|
||||
?? (_cultureDictionary = CultureDictionaryFactoryResolver.Current.Factory.CreateDictionary());
|
||||
}
|
||||
}
|
||||
private static ICultureDictionary CultureDictionary
|
||||
=> _cultureDictionary ?? (_cultureDictionary = Current.CultureDictionaryFactory.CreateDictionary());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +228,6 @@
|
||||
<Compile Include="DependencyInjection\ServicesCompositionRoot.cs" />
|
||||
<Compile Include="DependencyInjection\WeightAttribute.cs" />
|
||||
<Compile Include="DictionaryExtensions.cs" />
|
||||
<Compile Include="Dictionary\CultureDictionaryFactoryResolver.cs" />
|
||||
<Compile Include="Dictionary\ICultureDictionaryFactory.cs" />
|
||||
<Compile Include="Events\CancellableEventArgs.cs" />
|
||||
<Compile Include="Events\ContentCacheEventArgs.cs" />
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
@@ -15,11 +11,9 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Umbraco.Web.Dictionary;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
using Umbraco.Web.Models.Mapping;
|
||||
using umbraco;
|
||||
using Umbraco.Web;
|
||||
using Umbraco.Core.DependencyInjection;
|
||||
using Current = Umbraco.Web.Current;
|
||||
|
||||
namespace Umbraco.Tests.Models.Mapping
|
||||
{
|
||||
@@ -30,8 +24,7 @@ namespace Umbraco.Tests.Models.Mapping
|
||||
{
|
||||
protected override void FreezeResolution()
|
||||
{
|
||||
CultureDictionaryFactoryResolver.Current = new CultureDictionaryFactoryResolver(
|
||||
Mock.Of<ICultureDictionaryFactory>());
|
||||
Container.RegisterSingleton<ICultureDictionaryFactory>(_ => Mock.Of<ICultureDictionaryFactory>());
|
||||
|
||||
base.FreezeResolution();
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using LightInject;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Dictionary;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Macros;
|
||||
using Umbraco.Core.Models.PublishedContent;
|
||||
@@ -228,6 +229,9 @@ namespace Umbraco.Web
|
||||
public static IServerRegistrar ServerRegistrar
|
||||
=> Container.GetInstance<IServerRegistrar>();
|
||||
|
||||
public static ICultureDictionaryFactory CultureDictionaryFactory
|
||||
=> Container.GetInstance<ICultureDictionaryFactory>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,15 +463,6 @@ namespace Umbraco.Web.Editors
|
||||
}
|
||||
|
||||
private ICultureDictionary CultureDictionary
|
||||
{
|
||||
get
|
||||
{
|
||||
return
|
||||
_cultureDictionary ??
|
||||
(_cultureDictionary = CultureDictionaryFactoryResolver.Current.Factory.CreateDictionary());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
=> _cultureDictionary ?? (_cultureDictionary = Current.CultureDictionaryFactory.CreateDictionary());
|
||||
}
|
||||
}
|
||||
@@ -262,8 +262,7 @@ namespace Umbraco.Web
|
||||
{
|
||||
if (_cultureDictionary == null)
|
||||
{
|
||||
var factory = CultureDictionaryFactoryResolver.Current.Factory;
|
||||
_cultureDictionary = factory.CreateDictionary();
|
||||
_cultureDictionary = Current.CultureDictionaryFactory.CreateDictionary();
|
||||
}
|
||||
return _cultureDictionary;
|
||||
}
|
||||
|
||||
@@ -529,8 +529,7 @@ namespace Umbraco.Web
|
||||
ImageUrlProviderCollectionBuilder.Register(Container)
|
||||
.Append(PluginManager.ResolveImageUrlProviders());
|
||||
|
||||
CultureDictionaryFactoryResolver.Current = new CultureDictionaryFactoryResolver(Container);
|
||||
Container.Register<ICultureDictionaryFactory, DefaultCultureDictionaryFactory>();
|
||||
Container.RegisterSingleton<ICultureDictionaryFactory, DefaultCultureDictionaryFactory>();
|
||||
|
||||
HealthCheckCollectionBuilder.Register(Container)
|
||||
.AddProducer(() => PluginManager.ResolveTypes<HealthCheck.HealthCheck>())
|
||||
|
||||
Reference in New Issue
Block a user