在Kephas中归属的服务注册是一个很好的功能,但我被迫使用它吗?我的意思是,因为Kephas只提供了实际DI / IoC实现的抽象层,所以它无法提供特定DI容器可能提供的所有功能。
此外,我的团队可能会对要遵循的编码风格有所限制和/或已经有大量的代码库需要支持。
不,你根本不是强迫的。您可以随身携带自己的容器,注册服务,但如果您希望Kephas与您的容器一起玩,其服务也必须在那里注册。它使用属性模型([*AppServiceContract]
和[OverridePriority/ProcessingPriority]
属性)执行此操作,因此您也必须支持它们,这在IoC适配器中。正如我在another answer中澄清的那样,如果你对System.Composition
适配器不满意或者你需要一个适配器用于另一个DI框架,你可以自己编写。