aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs')
-rw-r--r--Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs18
1 files changed, 8 insertions, 10 deletions
diff --git a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
index 8503a358e..76b039672 100644
--- a/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
+++ b/Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
@@ -139,23 +139,21 @@ namespace Emby.Server.Implementations.AppBase
/// </summary>
/// <typeparam name="T">Class to register.</typeparam>
public virtual void RegisterConfiguration<T>()
+ where T : IConfigurationFactory
{
- if (!typeof(IConfigurationFactory).IsAssignableFrom(typeof(T)))
- {
- throw new ArgumentException("Parameter does not implement IConfigurationFactory");
- }
-
- IConfigurationFactory factory = (IConfigurationFactory)Activator.CreateInstance(typeof(T));
+ IConfigurationFactory factory = Activator.CreateInstance<T>();
if (_configurationFactories == null)
{
- _configurationFactories = new IConfigurationFactory[] { factory };
+ _configurationFactories = new[] { factory };
}
else
{
- var list = _configurationFactories.ToList<IConfigurationFactory>();
- list.Add(factory);
- _configurationFactories = list.ToArray();
+ var oldLen = _configurationFactories.Length;
+ var arr = new IConfigurationFactory[oldLen + 1];
+ _configurationFactories.CopyTo(arr, 0);
+ arr[oldLen] = factory;
+ _configurationFactories = arr;
}
_configurationStores = _configurationFactories