mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-05 15:28:28 +01:00
Changes to support network config
This commit is contained in:
@@ -134,6 +134,35 @@ 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>()
|
||||
{
|
||||
if (!typeof(IConfigurationFactory).IsAssignableFrom(typeof(T)))
|
||||
{
|
||||
throw new ArgumentException("Parameter does not implement IConfigurationFactory");
|
||||
}
|
||||
|
||||
IConfigurationFactory factory = (IConfigurationFactory)Activator.CreateInstance(typeof(T));
|
||||
|
||||
if (_configurationFactories == null)
|
||||
{
|
||||
_configurationFactories = new IConfigurationFactory[] { factory };
|
||||
}
|
||||
else
|
||||
{
|
||||
var list = _configurationFactories.ToList<IConfigurationFactory>();
|
||||
list.Add(factory);
|
||||
_configurationFactories = list.ToArray();
|
||||
}
|
||||
|
||||
_configurationStores = _configurationFactories
|
||||
.SelectMany(i => i.GetConfigurations())
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds parts.
|
||||
/// </summary>
|
||||
@@ -269,7 +298,7 @@ namespace Emby.Server.Implementations.AppBase
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public object GetConfiguration(string key, Type objectType = null)
|
||||
public object GetConfiguration(string key)
|
||||
{
|
||||
return _configurations.GetOrAdd(key, k =>
|
||||
{
|
||||
@@ -278,12 +307,12 @@ namespace Emby.Server.Implementations.AppBase
|
||||
var configurationInfo = _configurationStores
|
||||
.FirstOrDefault(i => string.Equals(i.Key, key, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
if (configurationInfo == null && objectType == null)
|
||||
if (configurationInfo == null)
|
||||
{
|
||||
throw new ResourceNotFoundException("Configuration with key " + key + " not found.");
|
||||
}
|
||||
|
||||
var configurationType = configurationInfo?.ConfigurationType ?? objectType;
|
||||
var configurationType = configurationInfo.ConfigurationType;
|
||||
|
||||
lock (_configurationSyncLock)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user