diff options
| author | David Ullmer <davidullmer@outlook.de> | 2021-08-10 14:03:21 +0200 |
|---|---|---|
| committer | David Ullmer <davidullmer@outlook.de> | 2021-08-10 14:03:21 +0200 |
| commit | 45e0f7893ba8f53827983109557447d2c0c8adcf (patch) | |
| tree | 05ba6fec826a6bcf4cdb17aa1ccfa6939358052c /Emby.Server.Implementations/Data/TypeMapper.cs | |
| parent | b5880c26808a6d7f183acb3f7977b42e13ccbf8a (diff) | |
| parent | 854bb79ae8b1e7004c731939e54e52ef937abe47 (diff) | |
Merge remote-tracking branch 'upstream/master' into localization-test
Diffstat (limited to 'Emby.Server.Implementations/Data/TypeMapper.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/TypeMapper.cs | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/Emby.Server.Implementations/Data/TypeMapper.cs b/Emby.Server.Implementations/Data/TypeMapper.cs index 7044b1d19..064664e1f 100644 --- a/Emby.Server.Implementations/Data/TypeMapper.cs +++ b/Emby.Server.Implementations/Data/TypeMapper.cs @@ -13,7 +13,7 @@ namespace Emby.Server.Implementations.Data /// This holds all the types in the running assemblies /// so that we can de-serialize properly when we don't have strong types. /// </summary> - private readonly ConcurrentDictionary<string, Type> _typeMap = new ConcurrentDictionary<string, Type>(); + private readonly ConcurrentDictionary<string, Type?> _typeMap = new ConcurrentDictionary<string, Type?>(); /// <summary> /// Gets the type. @@ -21,26 +21,16 @@ namespace Emby.Server.Implementations.Data /// <param name="typeName">Name of the type.</param> /// <returns>Type.</returns> /// <exception cref="ArgumentNullException"><c>typeName</c> is null.</exception> - public Type GetType(string typeName) + public Type? GetType(string typeName) { if (string.IsNullOrEmpty(typeName)) { throw new ArgumentNullException(nameof(typeName)); } - return _typeMap.GetOrAdd(typeName, LookupType); - } - - /// <summary> - /// Lookups the type. - /// </summary> - /// <param name="typeName">Name of the type.</param> - /// <returns>Type.</returns> - private Type LookupType(string typeName) - { - return AppDomain.CurrentDomain.GetAssemblies() - .Select(a => a.GetType(typeName)) - .FirstOrDefault(t => t != null); + return _typeMap.GetOrAdd(typeName, k => AppDomain.CurrentDomain.GetAssemblies() + .Select(a => a.GetType(k)) + .FirstOrDefault(t => t != null)); } } } |
