0

J'utilise le château de Windsor dans l'application MVC et j'ai ce problème:Windsor Castle: PerWebRequest dans le contrôleur

Je dépendance IUnitOfWorkProvider que je veux avoir PerWebRequest mode de vie.

Dans contrôleur j'ai ces deux dependecies:

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

AuthenticationProvider a la même dépendance (IUnitOfWorkProvider)

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

Le problème est que les "deux" UnitOfWorkProvider s (dans le contrôleur et en AuthenticationProvider) ne sont pas les mêmes que je m'attendais à être.

IAuthenticationProvider, AuthenticationProvider et son inscription dans un autre projet (Bibliothèque Windows).

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

LifestylePerThread ne fonctionne pas avec la même erreur .

Lorsque je règle LifestyleSignleton cela fonctionne très bien.

Quelqu'un peut-il aider? Merci.

+0

Je ne comprends pas vraiment quel est le problème réel – maxlego

+0

@maxlego: J'ai changé la description pour être plus compréhensible, j'espère que c'est mieux –

+0

quel est le mode de vie IAuthenticationProvider? – maxlego

Répondre

0

Le problème était que IAuthenticationProvider avait un style de vie singleton. Je l'ai changé à PerWebRequest aussi bien et maintenant cela fonctionne très bien.