Common Service Locator library

简介:
你在你的应用程序应用IoC容器了吗,你是否希望不依赖于某个具体的IoC,微软的模式与实践团队在Codeplex上发布的 Common Service Locator。Common Service Locator 类库包含应用程序和框架开发者引用Service location共享的接口。这个类库提供了在IOC容器和Service locators之上抽象。使用这个类库允许一个应用程序在没有强引用依赖下间接的访问的能力。它所定义的接口非常简单:
namespace  Microsoft.Practices.ServiceLocation {  public   interface  IServiceLocator : IServiceProvider {  object  GetInstance(Type serviceType);  object  GetInstance(Type serviceType,  string  key); IEnumerable< object > GetAllInstances(Type serviceType); TService GetInstance<TService>(); TService GetInstance<TService>( string  key); IEnumerable<TService> GetAllInstances<TService>(); } } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } 还提供了一个ServiceLocator静态类作为单一的访问点:  namespace  Microsoft.Practices.ServiceLocation {  public   static   class  ServiceLocator {  private   static  ServiceLocatorProvider currentProvider;  public   static  IServiceLocator Current { get {  return  currentProvider(); } }  public   static   void  SetLocatorProvider(ServiceLocatorProvider newProvider) { currentProvider = newProvider; } } } 这里使用服务器定位器解除IoC同组件之间的依赖关系。服务定位器的最基本的思想就是有一个对象定位器知晓如何控制应用程序需要的所有服务。网站上现在已经有了 常用的IoC的适配器,如果你使用Castle,你可以使用 Castle Windsor Adaptor ,如果你使用的是Unity,你可以使用 Unity Adapter ,还有 Spring .NET Adapter StructureMap Adapter 等等.
Common Service Locator官方:  http://www.codeplex.com/CommonServiceLocator





本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/124054,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
存储 应用服务中间件 开发工具
Platform as a Service
PaaS(Platform as a Service,平台即服务)是一种云计算服务模型,它提供了一组开发工具和服务,使开发人员可以构建和部署应用程序,而无需关心底层基础设施的管理。PaaS 通常包括一个操作系统级别的基础设施、服务器、存储和网络服务,以及一系列开发工具和服务,如数据库、Web 服务器、应用服务器、消息传递、身份认证等。
143 2
Platform as a Service
|
7月前
|
Python
【Error】DeprecationWarning: executable_path has been deprecated, please pass in a Service object
【Error】DeprecationWarning: executable_path has been deprecated, please pass in a Service object
124 2
|
5月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
5月前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
164 0
|
5月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
|
6月前
|
Java Spring
Description:Field contentMapper in worldtolingyidianke.file.service.impl.ContentServiceImpl requir
Description:Field contentMapper in worldtolingyidianke.file.service.impl.ContentServiceImpl requir
|
关系型数据库 MySQL 数据库
Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
482 0
|
Java 开发工具
gradle Could not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.crea
gradle Could not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.createCrossBuildFileHashCache().
6800 0
|
弹性计算 Apache iOS开发
A Quick Guide to Analyzing Apache Logs on Alibaba Cloud Log Service
This article describes how you can deploy Logstash and Kibana on Alibaba Cloud Log Service to monitor, analyze, and visualize Apache logs.
2322 0
A Quick Guide to Analyzing Apache Logs on Alibaba Cloud Log Service