在温莎不同的生活方式中使用相同的实现
我有一个这样的类:
public FooRepo : IFooRepo
{
public FooRepo(IDbContextFactory factory)
{
context = factory.GetContext();
}
}
在我的应用程序中,我使用 LifeStyle.PerWebRequest 注册所有内容, 但现在我需要调用一个像这样使用这个 IFooRepo
的方法(因为它需要大约一个小时):
{
...
ThreadPool.QueueUserWorkItem(s => RequestReport(number));
...
}
private void RequestReport(int number)
{
// IFooRepo needed here
}
问题是我最需要这个具有 PerWebRequest 生活方式的 IFooRepo
当时,我需要在线程中保持活动状态,它还有一个依赖项 IDbContextFactory
,我不知道是否需要以不同的方式注册它
I have a class like this:
public FooRepo : IFooRepo
{
public FooRepo(IDbContextFactory factory)
{
context = factory.GetContext();
}
}
In my app I register everything with LifeStyle.PerWebRequest
,
but now I need to call one Method which uses this IFooRepo
like this (because it's gonna take about an hour):
{
...
ThreadPool.QueueUserWorkItem(s => RequestReport(number));
...
}
private void RequestReport(int number)
{
// IFooRepo needed here
}
the problem is that I need this IFooRepo
with PerWebRequest lifestyle most of the time, and I needed here in the thread also to stay alive, also it has a dependency IDbContextFactory
which I don't know if I need to register it also in a different way
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
然后注册您的
FooRepo
两次并设置服务覆盖 供任何使用ThreadPool
来使用其他组件的人使用。简单的。well then register your
FooRepo
twice and setup service override for whoever uses in on theThreadPool
to use the other component. Easy.