2011-05-24 45 views
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 
} 

的问题是,我需要这个IFooRepo与PerWebRequest生活的大部分时间,我需要在这里的线程还活着,我还T具有依赖性IDbContextFactory我不知道我是否还需要注册它以不同的方式

回答

2

以及再注册谁在ThreadPool使用中使用其他组件的FooRepo两次setup service override。简单。

+0

@KrzysztofKoźmic我还必须注册IDbContextFactory两次吗?什么是“设置服务覆盖”? – Omu 2011-05-24 09:17:51

+0

您需要在给定的上下文中设置两次无意义的按网络请求。我更新了有关服务覆盖文档链接的答案 – 2011-05-24 09:31:03

+0

@KrzysztofKoźmic而不是构造函数注入我必须使用字符串键解析吗? – Omu 2011-05-24 11:25:45