add defensive logic to Oqtane.Client for loading modules on which have not declared all dependencies on WebAssembly

This commit is contained in:
Shaun Walker 2023-03-14 20:40:49 -04:00
parent 04c0b9d37d
commit 497ef1750b

View File

@ -198,6 +198,8 @@ namespace Oqtane.Client
private static void RegisterModuleServices(Assembly assembly, IServiceCollection services) private static void RegisterModuleServices(Assembly assembly, IServiceCollection services)
{ {
// dynamically register module scoped services // dynamically register module scoped services
try
{
var implementationTypes = assembly.GetInterfaces<IService>(); var implementationTypes = assembly.GetInterfaces<IService>();
foreach (var implementationType in implementationTypes) foreach (var implementationType in implementationTypes)
{ {
@ -208,8 +210,15 @@ namespace Oqtane.Client
} }
} }
} }
catch
{
// could not interrogate assembly - likely missing dependencies
}
}
private static void RegisterClientStartups(Assembly assembly, IServiceCollection services) private static void RegisterClientStartups(Assembly assembly, IServiceCollection services)
{
try
{ {
var startUps = assembly.GetInstances<IClientStartup>(); var startUps = assembly.GetInstances<IClientStartup>();
foreach (var startup in startUps) foreach (var startup in startUps)
@ -217,6 +226,11 @@ namespace Oqtane.Client
startup.ConfigureServices(services); startup.ConfigureServices(services);
} }
} }
catch
{
// could not interrogate assembly - likely missing dependencies
}
}
private static async Task SetCultureFromLocalizationCookie(IServiceProvider serviceProvider) private static async Task SetCultureFromLocalizationCookie(IServiceProvider serviceProvider)
{ {