如何解决使用城堡温莎将依赖项注入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中,其他地方通常表示自定义动作调用程序,该调用程序使用属性中的数据来提供所需的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。