2011-05-24 59 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