使用城堡温莎将依赖项注入CustomAttribute

问题描述

| 在我的ASP.Net MVC应用程序中,我实现了一个自定义ActionFilter来授权用户。 我使用CastleWindsor向所有控制器中提供依赖项注入,如下所示:
  protected virtual IWindsorContainer InitializeServiceLocator()
    {
        IWindsorContainer container = new WindsorContainer();
        ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));

        container.RegisterControllers(typeof(HomeController).Assembly);
        ComponentRegistrar.AddComponentsTo(container);

        ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));

        return container;
    }
在我的CustomAttribute中,我需要一个我的所有控制器都使用的依赖项,但是我无法在属性中使用基于构造函数的用户注入。 那么,这里最干净的出路是什么?如何提供依赖关系?     

解决方法

好的-这似乎是将数据库注入ASP MVC和Castle Windsor的验证属性中的副本,已得到解答。 另请参见如何使用Windsor将依赖项注入ActionFilterAttributes。 阅读完以上内容和参考文章-对我而言,关键的是http://weblogs.asp.net/psteele/archive/2009/11/04/using-windsor-to-inject-dependencies-into-asp -net-mvc-actionfilters.aspx,供其他感兴趣的人使用。     ,你不能。属性是元数据。将行为放入其中是错误的。放置依赖关系甚至更糟。 使用属性作为标记来表示要对其应用行为并在其他地方实现行为的对象。 在MVC中,其他地方通常表示自定义动作调用程序,该调用程序使用属性中的数据来提供所需的行为。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...