首页 新闻 会员 周边

怎么在MVC4中的特性中使用Spring.NET依赖注入对象

0
悬赏园豆:100 [已解决问题] 解决于 2014-07-11 13:55

项目使用了NHibernate3+Spring.NET2+.NET MVC4架构,对普通的控制器和WebAPI使用AuthorizeAttribute特性来实现授权验证,

在使用特性的时候要想使用自动注入对象来查询操作数据库,发现在特性中取不到自动注入的对象,不知道有没有朋友接触过的?感激不尽

米笑仙的主页 米笑仙 | 初学一级 | 园豆:76
提问于:2014-07-08 10:24
< >
分享
最佳答案
0

ContextRegistry.GetContext().GetObject("UserBiz") as IUserBiz

特性目前是没办法拿到托管给Spring的对象,因为业务接口本来就是托管给Spring,但特性又没有,所以肯定没办法注入,用上面那个代码就可以取到托管在Spring中的对象了

收获园豆:90
Genius Zhang | 菜鸟二级 |园豆:401 | 2014-07-09 14:17

这样确实是可以的,如果是要自动注入的话可以吗

米笑仙 | 园豆:76 (初学一级) | 2014-07-09 14:18

@米笑仙: 特性目前是没办法拿到托管给Spring的对象,因为业务接口本来就是托管给Spring,但特性又没有,所以肯定没办法注入,用上面那个代码就可以取到托管在Spring中的对象了

Genius Zhang | 园豆:401 (菜鸟二级) | 2014-07-09 14:20
其他回答(1)
0

特性中取不到想要注入的对象?没怎么听明白你的问题,Spring我也接触过,但是不知道你描述的是什么问题。

收获园豆:10
晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 13:30

就是在特性的类中定义一个业务接口,没有办法获取到Spring.NET 控制反转实例化的对象

支持(0) 反对(0) 米笑仙 | 园豆:76 (初学一级) | 2014-07-08 13:54

@米笑仙: 可能我们的用法不一样吧,我是直接在配置文件里面配置的,然后就能直接在 Controller 里面使用对象。能发一下代码吗?

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-08 18:53

@晓菜鸟: Controller是可以自动注入,特性里面不行。。

支持(0) 反对(0) 米笑仙 | 园豆:76 (初学一级) | 2014-07-09 14:22

@米笑仙: 哦哦,好吧.

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-09 15:46

@米笑仙: 问题还没有解决吗?

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-11 13:49

@晓菜鸟: 目前在特性里没有办法做成自动注入的形式,只能用ContextRegistry.GetContext().GetObject("UserBiz") as IUserBiz 来调用

支持(0) 反对(0) 米笑仙 | 园豆:76 (初学一级) | 2014-07-11 13:51

@米笑仙: 嗯,那就先这么用着吧,说不定突然有一天你发现另外一种方法就轻轻松松的解决了。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-11 13:53

@晓菜鸟: 嗯嗯,先结帖了

支持(0) 反对(0) 米笑仙 | 园豆:76 (初学一级) | 2014-07-11 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册