在温莎不同的生活方式中使用相同的实现

发布于 2024-11-09 05:07:13 字数 586 浏览 0 评论 0原文

我有一个这样的类:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听你说爱我 2024-11-16 05:07:13

然后注册您的 FooRepo 两次并设置服务覆盖 供任何使用 ThreadPool 来使用其他组件的人使用。简单的。

well then register your FooRepo twice and setup service override for whoever uses in on the ThreadPool to use the other component. Easy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文