版本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的,而且同一个程序集,使用同一个接口注入,都应该得到一样的结果。
什么情况有可能导致这个问题的产生?
依赖注入解耦