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,现在它工作正常。