0

我在 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;
    }
    ...
}

问题是“两个” UnitOfWorkProviders(在控制器中和中AuthenticationProvider我期望的不同。

IAuthenticationProviderAuthenticationProvider并且它的注册在不同的项目(Windows 库)中。

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

LifestylePerThread不适用于相同的错误

当我设置LifestyleSignleton它工作正常。

有人可以帮忙吗?谢谢。

4

1 回答 1

0

问题是 IAuthenticationProvider 有单身生活方式。我也将其更改为 PerWebRequest,现在它工作正常。

于 2013-06-04T20:29:57.110 回答