mirror of
https://github.com/Radarr/Radarr.git
synced 2024-09-11 03:52:33 +02:00
Used ReflectionOnly and/or public types where possible to avoid loading related assemblies unnecessarily
Fixes #4763 Co-Authored-By: taloth <taloth@users.noreply.github.com>
This commit is contained in:
parent
71ad2ec794
commit
39a1dbf1d1
@ -30,14 +30,14 @@ protected ContainerBuilderBase(IStartupContext args, List<string> assemblies)
|
||||
#if !NETCOREAPP
|
||||
foreach (var assembly in assemblies)
|
||||
{
|
||||
_loadedTypes.AddRange(Assembly.Load(assembly).GetTypes());
|
||||
_loadedTypes.AddRange(Assembly.Load(assembly).GetExportedTypes());
|
||||
}
|
||||
#else
|
||||
var startupPath = AppDomain.CurrentDomain.BaseDirectory;
|
||||
|
||||
foreach (var assemblyName in assemblies)
|
||||
{
|
||||
_loadedTypes.AddRange(AssemblyLoadContext.Default.LoadFromAssemblyPath(Path.Combine(startupPath, $"{assemblyName}.dll")).GetTypes());
|
||||
_loadedTypes.AddRange(AssemblyLoadContext.Default.LoadFromAssemblyPath(Path.Combine(startupPath, $"{assemblyName}.dll")).GetExportedTypes());
|
||||
}
|
||||
|
||||
var toRegisterResolver = new List<string> { "System.Data.SQLite" };
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
@ -17,7 +17,7 @@ public static List<PropertyInfo> GetSimpleProperties(this Type type)
|
||||
|
||||
public static List<Type> ImplementationsOf<T>(this Assembly assembly)
|
||||
{
|
||||
return assembly.GetTypes().Where(c => typeof(T).IsAssignableFrom(c)).ToList();
|
||||
return assembly.GetExportedTypes().Where(c => typeof(T).IsAssignableFrom(c)).ToList();
|
||||
}
|
||||
|
||||
public static bool IsSimpleType(this Type type)
|
||||
@ -68,7 +68,7 @@ public static T[] GetAttributes<T>(this MemberInfo member)
|
||||
|
||||
public static Type FindTypeByName(this Assembly assembly, string name)
|
||||
{
|
||||
return assembly.GetTypes().SingleOrDefault(c => c.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));
|
||||
return assembly.GetExportedTypes().SingleOrDefault(c => c.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));
|
||||
}
|
||||
|
||||
public static bool HasAttribute<TAttribute>(this Type type)
|
||||
|
@ -37,6 +37,7 @@ private static void InitializeEnvironment()
|
||||
Environment.SetEnvironmentVariable("No_Expand", "true");
|
||||
Environment.SetEnvironmentVariable("No_SQLiteXmlConfigFile", "true");
|
||||
Environment.SetEnvironmentVariable("No_PreLoadSQLite", "true");
|
||||
Environment.SetEnvironmentVariable("No_SQLiteFunctions", "true");
|
||||
}
|
||||
|
||||
public static void RegisterDatabase(IContainer container)
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Lifecycle;
|
||||
|
||||
@ -9,7 +9,7 @@ public interface ICancelHandler
|
||||
void Attach();
|
||||
}
|
||||
|
||||
internal class CancelHandler : ICancelHandler
|
||||
public class CancelHandler : ICancelHandler
|
||||
{
|
||||
private readonly ILifecycleService _lifecycleService;
|
||||
private object _syncRoot;
|
||||
|
Loading…
Reference in New Issue
Block a user