Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 注册为统一或添加为引用_C#_Unity Container_Prism_Composition_Prism 4 - Fatal编程技术网

C# 注册为统一或添加为引用

C# 注册为统一或添加为引用,c#,unity-container,prism,composition,prism-4,C#,Unity Container,Prism,Composition,Prism 4,我的应用程序中有3个模块。和1个服务图书馆。 Module1 Module2 Module3 ServiceLibrary 当引导程序添加模块时,ServiceLibrary将注册到Unity,以便ServiceLibrary在模块1中注册到Unity。比如: _container.RegisterType<ISystemService>,ServiceLibrary>(); \u container.RegisterType,ServiceLibrary>(); 该

我的应用程序中有3个模块。和1个服务图书馆。
Module1
Module2
Module3

ServiceLibrary

当引导程序添加模块时,ServiceLibrary将注册到Unity,以便ServiceLibrary在模块1中注册到Unity。比如:

_container.RegisterType<ISystemService>,ServiceLibrary>();
\u container.RegisterType,ServiceLibrary>();
该服务也可以由所有其他模块调用。因此,当调用它时,例如Module2,它将在Module2中解析并使用它,如:

ISytemService myserv=_container.Resolve<ISystemService>("ServiceLibrary");
ISytemService myserv=_container.Resolve(“ServiceLibrary”);
那么,哪种方法对性能有好处呢
添加该ServiceLibrary作为模块的引用,或者在需要使用时使用上述方法从Unity解析它。在这个项目中,有100多个这样的服务库

模块1、模块2、模块3和服务库应引用一个单独的程序集,该程序集包含
IServiceLibrary
和一个Wellknown服务名称列表,具体实例应使用Unity获得:

ISytemService myserv=_container.Resolve<ISystemService>(WellKnownNames.ServiceLibrary);
ISytemService myserv=\u container.Resolve(welllknownnames.servicebrary);

将模块中的引用添加到
ServiceLibrary
中,消除了使用像Unity这样的IoC容器的全部意义

将模块中的引用添加到ServiceLibrary中消除了使用像Unity这样的IoC容器的全部意义。那么这对性能更好吗?如果不进行衡量,我不能说,但我认为任何性能优势都是微不足道的,而对可维护性的负面影响则是巨大的。每次你想添加一个新的服务,你就必须重新编译你的应用程序。