c# - AddHostedService 用于从动态加载的程序集中加载的类型
问题描述
我有一个带有单个后台服务 (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()>();
}
});
解决方案
推荐阅读
- typescript - TypeScript Knockout 定义对可观察数组的重大更改?
- python - 如何在不更改前一个条件的结果的情况下对行应用多个条件?
- python-3.x - 在 databricks 中,在不同的笔记本中使用 unittest.mock.patch 函数
- select - 使用 random() 或 tablesample system() 在 impala 中随机采样 n 行
- r - 如何使用累积函数计算 2 个相互交织的变量
- codenameone - ButtonGroup 实例的引用检索
- python - 在 Google Cloud Engine 中将代理与 Chromedriver 一起使用
- apache - 将 www.example.com/some-path/example/ 重定向到 www.example.com/some-path/?ABC=123
- python - 在 yahoo Finance python 上的某些股票和页面出现 404 错误
- python - 如何解读分歧和低有效样本警告?