C# 为什么我们需要公共服务定位器库?
我有一个3层的应用程序。前端、业务、数据层。 我使用Microsoft Unity作为依赖项容器。 我已经将NUnit与RhinoMock一起用于测试应用程序 我已经阅读了许多文章介绍了公共服务定位器层。C# 为什么我们需要公共服务定位器库?,c#,silverlight,architecture,C#,Silverlight,Architecture,我有一个3层的应用程序。前端、业务、数据层。 我使用Microsoft Unity作为依赖项容器。 我已经将NUnit与RhinoMock一起用于测试应用程序 我已经阅读了许多文章介绍了公共服务定位器层。 ** 我们应该在哪个scnerios中引入公共服务定位器 它将在项目中用上述架构替换哪一层 在我的项目中,它将与哪个层通信 公共服务定位层只是一个与业务层和前端层通信的WCF web服务项目吗** 我认为您指的是一种查找依赖项(即服务)的通用方法,因此在您的示例中,它将取代Unity(或者Un
** 我们应该在哪个scnerios中引入公共服务定位器
我认为您指的是一种查找依赖项(即服务)的通用方法,因此在您的示例中,它将取代Unity(或者Unity将只实现公共接口) 通过这种方式,各种框架可以更容易地协同工作,因为它们共享一种识别服务/插件等的通用方法 我们已经有很多实现该功能的库(Unity、Ninject等),但是如果一个框架(例如MVC)想要获得某个接口的实例,它需要知道您正在使用哪个库,因为它们不共享一个公共接口,这是很困难的。通过一个公共接口,您可以告诉MVC您希望它从何处获取对象 为什么我们需要公共服务定位器 图书馆 我们并不真的需要它,它只是提供了一个更好的分离。它主要是依赖注入之上的抽象,这样客户机就不需要知道服务位于何处以及如何实现 这通常会转到您的客户机代码。例如,创建代理并调用服务的客户端不需要创建代理,而是从服务定位器请求代理