我在 NServiceBus 调度程序中遇到了 Autofac 和内存泄漏的问题。但幸运的是我解决了这个问题。
BeginLifetimeScope / DbContext 的 Autofac 和内存泄漏已被处理 / C# asp.net
但现在我正在尝试稍微重构这部分。
我的代码:
public void Start()
{
List<Type> jobTypes = new List<Type> { typeof(ExpiryDateTask) };
foreach (var jobType in jobTypes)
{
_schedule.Every(TimeSpan.FromSeconds(30), () =>
{
using (var scope = _lifetimeScope.BeginLifetimeScope())
{
var job = scope.Resolve<IJob>();
job.Run();
}
});
}
}
我该如何重构这部分:
List<Type> jobTypes = new List<Type> { typeof(ExpiryDateTask) };- 该列表应以某种方式由实现 IJob 接口的所有类型的任务填充。var job = scope.Resolve<IJob>();我认为这是错误的,应该看起来更像var job = resolveJob(jobType)- 所以基本上基于类型。
@编辑
点 (1) 通过获取所有实现接口的类型来解决