注册统一或添加作为参考

本文关键字:参考 添加 注册 | 更新日期: 2023-09-27 18:09:12

我有3个模块在我的应用程序。和1 ServiceLibrary。

Module1
Module2
Module3
ServiceLibrary

ServiceLibrary将在Bootstrapper添加模块时注册到Unity,因此ServiceLibrary在Module1中注册到Unity。如:

_container.RegisterType<ISystemService>,ServiceLibrary>();

并且该服务也可以被所有其他模块调用。因此,当它被调用时,例如Module2它会解析并在Module2中使用它,例如

ISytemService myserv=_container.Resolve<ISystemService>("ServiceLibrary");

那么哪种方法对性能更好呢?

添加ServiceLibrary作为对模块的引用,或者在需要使用时从Unity中解析它。在项目中有超过100个这样的服务库。

注册统一或添加作为参考

Module1, Module2, Module3 &ServiceLibrary应该引用一个单独的程序集,其中包含IServiceLibrary和WellKnownService名称列表,具体的实例应该使用Unity获得:

ISytemService myserv=_container.Resolve<ISystemService>(WellKnownNames.ServiceLibrary);

将模块中的引用添加到ServiceLibrary中删除了使用像Unity这样的IoC容器的全部要点。