From d8d5e768b2eab79eb105f0f92cbcf613a0518f6a Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Fri, 10 Jan 2020 10:51:14 -0500 Subject: [PATCH] fixd issue where the ihostedservice registration was too wide resulting in an error Cannot instantiate implementation type 'Microsoft.Extensions.Hosting.BackgroundService' for service type 'Microsoft.Extensions.Hosting.IHostedService' --- Oqtane.Server/Controllers/PageController.cs | 2 +- .../Extensions/OqtaneServiceCollectionExtensions.cs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index 560bf5f8..9109b257 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -42,7 +42,7 @@ namespace Oqtane.Controllers [HttpGet("{id}")] public Page Get(int id, string userid) { - if (userid == "") + if (string.IsNullOrEmpty(userid)) { return Pages.GetPage(id); } diff --git a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs index 2eec6534..c32f7194 100644 --- a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs @@ -79,7 +79,7 @@ namespace Microsoft.Extensions.DependencyInjection var serviceTypes = assembly.GetTypes(hostedServiceType); foreach (var serviceType in serviceTypes) { - if (serviceType.Name != nameof(HostedServiceBase)) + if (serviceType.IsSubclassOf(typeof(HostedServiceBase))) { services.AddSingleton(hostedServiceType, serviceType); } @@ -103,7 +103,11 @@ namespace Microsoft.Extensions.DependencyInjection { // load assembly from stream to prevent locking file ( as long as dependencies are in /bin they will load as well ) assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(file.FullName))); - _oqtaneModuleAssemblies.Add(assembly); + if (pattern == "Module") + { + // build a list of module assemblies + _oqtaneModuleAssemblies.Add(assembly); + } } } }