我在 MVC 应用程序中使用 Castle Windsor,我遇到了这个问题:
我有IUnitOfWorkProvider
依赖,我想拥有PerWebRequest
生活方式。
在控制器中,我有这两个依赖项:
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
)与我期望的不同。
IAuthenticationProvider
,AuthenticationProvider
并且它的注册在不同的项目(Windows 库)中。
container.Register(Component.For<IUnitOfWorkProvider>()
.ImplementedBy<UnitOfWorkProvider>()
.LifestylePerWebRequest());
LifestylePerThread
不适用于相同的错误。
当我设置LifestyleSignleton
它工作正常。
有人可以帮忙吗?谢谢。