Après avoir vu comment NInject can do it et AutoFac can do it J'essaie de comprendre comment injecter des dépendances dans MVC ActionFilters utilisant le château de WindsorComment puis-je utiliser Windsor pour injecter des dépendances dans ActionFilterAttributes
En ce moment je suis en utilisant un statique laid IoC classe d'aide pour résoudre les dépendances du code constructeur comme ceci:
public class MyFilterAttribute : ActionFilterAttribute
{
private readonly IUserRepository _userRepository;
public MyFilterAttribute() : this(IoC.Resolve<IUserRepository>()) { }
public MyFilterAttribute(IUserRepository userRepository)
{
_userRepository = userRepository;
}
}
J'aimerais enlever cette chose statique antimodèle de mes IoC filtres.
Y a-t-il des indices sur comment je ferais ça avec Castle Windsor?
Et non, le changement de cadre DI n'est pas une option.
Je suis d'accord: les attributs ne doivent pas être "exécutables" mais juste une étiquette. –
merci beaucoup pour votre réponse! Je me suis lancé avec quelques mods: 1) la ligne Container.Resolve nécessite un paramètre générique. Je l'ai changé pour utiliser Container.Resolve (serviceType) et le cast. 2) J'ai hérité de mvccontrib WindsorControllerFactory et ajouté ActionInvoker dans CreateController(). –