首页 新闻 会员 周边

.net abp 框架依赖注入问题,有没有大神知道原因!!!!!!!

0
悬赏园豆:20 [已解决问题] 解决于 2017-01-06 12:24

.net abp 框架依赖注入不能2个service 互相引用吗,直接就报错了 运行时.

嘿嘿果宝的主页 嘿嘿果宝 | 初学一级 | 园豆:32
提问于:2017-01-05 19:05
< >
分享
最佳答案
0

abp用的是什么DI框架,一般第三方框架都可以通过一些方法做到循环注入。

比如autofac  http://www.cnblogs.com/kissdodog/p/3611799.html

收获园豆:15
czd890 | 专家六级 |园豆:14412 | 2017-01-06 10:30

但是就目前现在来看,我想解决的就是在abp框架下,做到互相引用 注入咋办?有办法做到吗?

嘿嘿果宝 | 园豆:32 (初学一级) | 2017-01-06 10:58

@Tokyo^hot: 

abp用的是什么DI框架,是abp自己造的轮子,还是用的第三方组件

czd890 | 园豆:14412 (专家六级) | 2017-01-06 11:12
其他回答(3)
0

互相引用会造成递归循环解析依赖,肯定挂啊。



收获园豆:5
醉仙灵芙 | 园豆:207 (菜鸟二级) | 2017-01-05 22:44

那咋办?我想用别的service里面的方法 还得自己重新写?

支持(0) 反对(0) 嘿嘿果宝 | 园豆:32 (初学一级) | 2017-01-06 09:22

谁知道有什么好办法么,不想又写一套一样的逻辑啊,

支持(0) 反对(0) 嘿嘿果宝 | 园豆:32 (初学一级) | 2017-01-06 10:15
0

不是所有的接口都会被自动注册到IOC容器里,要按abp的规范,比如,是实体类就得实现IEntity接口,是领域类就得实现IDomainService接口,是应用类就得实现IApplication接口,仓储类是IRepositoy接口,才能通过构造器自动注入.并且类的命名要规范,不然abp认不出来也是不能注册的.你也可查看IIocManager的这个里面有注册你的这个类就知道了.abp没有相互引用的关系,因为这些类都是注册到独立的容器里面.跟类是没有关系的.

FreeGen | 园豆:202 (菜鸟二级) | 2019-12-20 10:36
0

循环引用和Abp框架没啥关系,只要两个模块存在互相引用都会出问题,想要解决这个问题,办法就是引入第三者协调,在Abp中,AService和BService互相引用,那么可以通过底层的IServiceProvider来协调,即两个Service注入IServiceProvider 或者 ILazyAbpServiceProvider ,然后通过 service.GetRequiredService<AService>(),service.GetRequiredService<BService>() 的方式来解耦AB的循环依赖

DHclly | 园豆:206 (菜鸟二级) | 2021-09-16 15:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册