0

我在MVC應用程序中使用溫莎城堡和我有這樣的問題:溫莎城堡:PerWebRequest在控制器

我有IUnitOfWorkProvider依賴,我想有PerWebRequest生活方式。

在控制器I有這兩個依賴條件:

public class UserController : Controller 
{ 
    public UserController(IUnitOfWorkProvider unitOfWorkProvider, 
          IAuthenticationProvider authenticationProvider) 
    { 
     this.unitOfWorkProvider = unitOfWorkProvider; 
     this.authenticationProvider = authenticationProvider; 
    } 
    ... 
} 

AuthenticationProvider具有相同的依賴性(IUnitOfWorkProvider

public class AuthenticationProvider : IAuthenticationProvider 
{ 
    public AuthenticationProvider(IUnitOfWorkProvider unitOfWorkProvider) 
    { 
     this.unitOfWorkProvider = unitOfWorkProvider; 
    } 
    ... 
} 

的問題是, 「兩」 UnitOfWorkProvider S(在控制器中並且在AuthenticationProvider是不一樣的我所期望的那樣。

IAuthenticationProviderAuthenticationProvider其註冊在不同的項目中(Windows庫)。

container.Register(Component.For<IUnitOfWorkProvider>() 
          .ImplementedBy<UnitOfWorkProvider>() 
          .LifestylePerWebRequest()); 

LifestylePerThread不與同樣的錯誤工作。

當我設置LifestyleSignleton它工作正常。

任何人可以幫助?謝謝。

+0

我不太明白實際問題 – maxlego

+0

@maxlego:我已經改變了描述,以便更容易理解,希望更好 –

+0

什麼是IAuthenticationProvider生活方式? – maxlego

回答

0

的問題是IAuthenticationProvider有單身的生活方式。我已經將它更改爲PerWebRequest,現在它工作正常。