diff options
| author | BaronGreenback <jimcartlidge@yahoo.co.uk> | 2020-11-16 19:47:36 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-16 19:47:36 +0000 |
| commit | 2bbfcc264d5b8469f491f7dc2e54d852c1c1111e (patch) | |
| tree | 00f15d3e4543a531bb5e6e0535fd43e683d1d6fd /Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs | |
| parent | 4bfcc8b0d15a76d9d33e038cc4e5590fc1016750 (diff) | |
| parent | dc0e353b968e80b9532638f5a752f89572566d82 (diff) | |
Merge branch 'master' into emby-namig-nullable
Diffstat (limited to 'Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs')
| -rw-r--r-- | Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs index 4ab0a2a3f..4f72c8ce1 100644 --- a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs +++ b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs @@ -134,6 +134,33 @@ namespace Emby.Server.Implementations.AppBase } /// <summary> + /// Manually pre-loads a factory so that it is available pre system initialisation. + /// </summary> + /// <typeparam name="T">Class to register.</typeparam> + public virtual void RegisterConfiguration<T>() + where T : IConfigurationFactory + { + IConfigurationFactory factory = Activator.CreateInstance<T>(); + + if (_configurationFactories == null) + { + _configurationFactories = new[] { factory }; + } + else + { + var oldLen = _configurationFactories.Length; + var arr = new IConfigurationFactory[oldLen + 1]; + _configurationFactories.CopyTo(arr, 0); + arr[oldLen] = factory; + _configurationFactories = arr; + } + + _configurationStores = _configurationFactories + .SelectMany(i => i.GetConfigurations()) + .ToArray(); + } + + /// <summary> /// Adds parts. /// </summary> /// <param name="factories">The configuration factories.</param> |
