项目使用了NHibernate3+Spring.NET2+.NET MVC4架构,对普通的控制器和WebAPI使用AuthorizeAttribute特性来实现授权验证,
在使用特性的时候要想使用自动注入对象来查询操作数据库,发现在特性中取不到自动注入的对象,不知道有没有朋友接触过的?感激不尽
ContextRegistry.GetContext().GetObject("UserBiz") as IUserBiz
特性目前是没办法拿到托管给Spring的对象,因为业务接口本来就是托管给Spring,但特性又没有,所以肯定没办法注入,用上面那个代码就可以取到托管在Spring中的对象了
这样确实是可以的,如果是要自动注入的话可以吗
@米笑仙: 特性目前是没办法拿到托管给Spring的对象,因为业务接口本来就是托管给Spring,但特性又没有,所以肯定没办法注入,用上面那个代码就可以取到托管在Spring中的对象了
特性中取不到想要注入的对象?没怎么听明白你的问题,Spring我也接触过,但是不知道你描述的是什么问题。
就是在特性的类中定义一个业务接口,没有办法获取到Spring.NET 控制反转实例化的对象
@米笑仙: 可能我们的用法不一样吧,我是直接在配置文件里面配置的,然后就能直接在 Controller 里面使用对象。能发一下代码吗?
@晓菜鸟: Controller是可以自动注入,特性里面不行。。
@米笑仙: 哦哦,好吧.
@米笑仙: 问题还没有解决吗?
@晓菜鸟: 目前在特性里没有办法做成自动注入的形式,只能用ContextRegistry.GetContext().GetObject("UserBiz") as IUserBiz 来调用
@米笑仙: 嗯,那就先这么用着吧,说不定突然有一天你发现另外一种方法就轻轻松松的解决了。
@晓菜鸟: 嗯嗯,先结帖了