【发布时间】:2014-05-12 18:44:20
【问题描述】:
我在 owin 驱动的 web api 项目中使用 autofac。我已经到了一个需要“解雇并忘记”一些数据处理的地方。
这通常不是问题。但是由于依赖关系由 autofac 中间件管理的每个请求的生命周期范围控制。我无法在我未等待的 async 方法中使用非托管资源(这是我需要做的)。
//for example...
public async Task<IEnumerable<MyThings>> GetThings(){
var things = await _thingRepo.GetInterestingThingsAsync();
//fire and forget. -- not awaiting
InjectedObject.DoThingsAsync(things);
return things;
}
这里的问题是我需要使用DoThingsAsync内部的其他注入资源(非托管资源)。目前这会中断,因为它们会在 Owin 请求结束时被处理掉。
我可以为每个调用创建一个子生命周期范围,但我希望它们可能是一种更清洁的方式来做这些事情..
【问题讨论】:
-
@joelmdev 我真的没有依赖注册的问题。虽然它确实链接到这个scenario,它提出了(在问题中)我遇到的相同的解决方案,但操作有另一个问题。
标签: c# asp.net asp.net-web-api task autofac