[英]AddHostedService for Types that are loaded from dynamically loaded assemblies
我有一个带有单个后台服务 (MyInternalBackgroundService) 的 .NET 5 后台工作应用程序。
现在我正在研究模块化插件架构,其中插件被放置在插件目录中,然后从那里加载程序集。 每个程序集可以包含多个继承自 BackgroundService 的类定义。 我加载了从 BackgroundService 继承的类型列表。
我只是不知道如何为加载的类型调用 AddHostedService 方法。 每种方法似乎都会导致不同的编译器错误。
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<MyInternalBackgroundServiceImplementation>();
TypeInfo[] moduleTypes = // class scanning directories for dlls, load the assemblies and find the desired types
foreach(var moduleType in moduleTypes)
{
// can't find the correct way
// services.AddHostedService<moduleType>();
//services.AddHostedService<moduleType.GetType()>();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.