Used ReflectionOnly and/or public types where possible to avoid loading related assemblies unnecessarily.

This commit is contained in:
Taloth Saldono 2019-08-21 20:19:05 +02:00
parent 02104aff34
commit 031371652b
7 changed files with 8 additions and 7 deletions

View File

@ -11,7 +11,7 @@ using NzbDrone.Core.Parser.Model;
namespace NzbDrone.Api.Indexers namespace NzbDrone.Api.Indexers
{ {
class ReleasePushModule : ReleaseModuleBase public class ReleasePushModule : ReleaseModuleBase
{ {
private readonly IMakeDownloadDecision _downloadDecisionMaker; private readonly IMakeDownloadDecision _downloadDecisionMaker;
private readonly IProcessDownloadDecisions _downloadDecisionProcessor; private readonly IProcessDownloadDecisions _downloadDecisionProcessor;

View File

@ -3,7 +3,7 @@ using Nancy;
namespace NzbDrone.Api.Profiles namespace NzbDrone.Api.Profiles
{ {
class LegacyProfileModule : NzbDroneApiModule public class LegacyProfileModule : NzbDroneApiModule
{ {
public LegacyProfileModule() public LegacyProfileModule()
: base("qualityprofile") : base("qualityprofile")

View File

@ -3,7 +3,7 @@ using Nancy;
namespace NzbDrone.Api.Wanted namespace NzbDrone.Api.Wanted
{ {
class LegacyMissingModule : NzbDroneApiModule public class LegacyMissingModule : NzbDroneApiModule
{ {
public LegacyMissingModule() : base("missing") public LegacyMissingModule() : base("missing")
{ {

View File

@ -23,7 +23,7 @@ namespace NzbDrone.Common.Composition
foreach (var assembly in assemblies) foreach (var assembly in assemblies)
{ {
_loadedTypes.AddRange(Assembly.Load(assembly).GetTypes()); _loadedTypes.AddRange(Assembly.Load(assembly).GetExportedTypes());
} }
Container = new Container(new TinyIoCContainer(), _loadedTypes); Container = new Container(new TinyIoCContainer(), _loadedTypes);

View File

@ -17,7 +17,7 @@ namespace NzbDrone.Common.Reflection
public static List<Type> ImplementationsOf<T>(this Assembly assembly) 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) public static bool IsSimpleType(this Type type)
@ -67,7 +67,7 @@ namespace NzbDrone.Common.Reflection
public static Type FindTypeByName(this Assembly assembly, string name) 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) public static bool HasAttribute<TAttribute>(this Type type)

View File

@ -40,6 +40,7 @@ namespace NzbDrone.Core.Datastore
Environment.SetEnvironmentVariable("No_Expand", "true"); Environment.SetEnvironmentVariable("No_Expand", "true");
Environment.SetEnvironmentVariable("No_SQLiteXmlConfigFile", "true"); Environment.SetEnvironmentVariable("No_SQLiteXmlConfigFile", "true");
Environment.SetEnvironmentVariable("No_PreLoadSQLite", "true"); Environment.SetEnvironmentVariable("No_PreLoadSQLite", "true");
Environment.SetEnvironmentVariable("No_SQLiteFunctions", "true");
} }
public static void RegisterDatabase(IContainer container) public static void RegisterDatabase(IContainer container)

View File

@ -12,7 +12,7 @@ using NzbDrone.Core.Parser.Model;
namespace Sonarr.Api.V3.Indexers namespace Sonarr.Api.V3.Indexers
{ {
class ReleasePushModule : ReleaseModuleBase public class ReleasePushModule : ReleaseModuleBase
{ {
private readonly IMakeDownloadDecision _downloadDecisionMaker; private readonly IMakeDownloadDecision _downloadDecisionMaker;
private readonly IProcessDownloadDecisions _downloadDecisionProcessor; private readonly IProcessDownloadDecisions _downloadDecisionProcessor;