使用相同的实施与不同的生活方式温莎

时间:2011-05-24 08:54:22

标签: castle-windsor ioc-container

我有一个这样的课程:

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
}

问题是我大多数时候都需要这个IFooRepo和PerWebRequest生活方式,我需要在线程中保持活着,它还有一个依赖IDbContextFactory我不知道知道我是否需要以不同的方式注册

1 个答案:

答案 0 :(得分:2)

然后注册FooRepo两次,setup service override注册ThreadPool上使用其他组件的用户。容易。