首页 新闻 会员 周边

net core 使用autofac 进行属性注入时候的问题

0
[已解决问题] 解决于 2018-07-05 16:42

版本NET CORE2.1,对应的autofac 也是最近的基本上

问题描述,使用属性注入,配置一切正常,代码场景如下

public class OrderService : IOrderService
{
       public ISiteSettingService SiteSettingService { get; set; }
//此处省略多个属性注入
}

public class ProductService : IProductService
{
     public ISiteSettingService SiteSettingService { get; set; }
//此处省略多个属性注入
}

其中,两个 接口 都实现了 自定义接口 IService,并且startup 里边也是针对 IService类型进行注入。

问题来了,项目跑起来之后  ProductService 里边的属性注入都生效了, 而OrderService 里边的注入全是 null, 两个service 都是同一个程序集,同一个命名空间,都没有写显示的构造函数,什么原因?

照理说 ProductService 属性注入成功,说明注入的配置都是OK的,而且同一个程序集,使用同一个接口注入,都应该得到一样的结果。

什么情况有可能导致这个问题的产生?

问题补充:
找到问题原因了,当时有人遇到了 两个service 互相注入对方接口的场景,然后系统报错,就有人把其中一个属性的注入改成 实例化 service 对象了,所以这个实例化对象 再去调用方法的时候,取到的内部注入属性就是 null 了 
死神的背影的主页 死神的背影 | 小虾三级 | 园豆:667
提问于:2018-07-05 14:41
< >
分享
最佳答案
1

依赖注入解耦

死神的背影 | 小虾三级 |园豆:667 | 2018-07-05 16:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册