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>();
    }
}


还提供了一个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等等.

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

目录
相关文章
|
10月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
10月前
|
人工智能 算法 Serverless
《主动式智能导购AI助手构建》解决方案用户评测
在部署体验过程中,官方提供的详尽文档和图表帮助新手轻松上手,但环境变量设置等问题仍需改进。解决方案采用Multi-Agent架构,百炼大模型实现精准推荐,函数计算优化响应速度。生产环境部署指导全面,但仍需加强异常处理和面向新手的教学资源。整体架构清晰高效,建议完善数据流描述及Router Agent算法逻辑的阐述。
291 10
《主动式智能导购AI助手构建》解决方案用户评测
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
【NeurIPS'24】阿里云 PAI 团队论文被收录为 Spotlight,并完成主题演讲分享
12月10日,NeurIPS 2024在温哥华开幕,阿里云PAI团队论文《PertEval: Unveiling Real Knowledge Capacity of LLMs with Knowledge-Invariant Perturbations》入选Spotlight,PAI团队还进行了“可信AI的技术解读与最佳实践”主题演讲,展示AI工程化平台产品能力。
|
存储 安全 Java
商汤的API如何进行鉴权?
商汤的API如何进行鉴权?
303 2
|
存储 缓存 Linux
Linux VFS机制详解
Linux VFS机制详解
1147 1
|
API 异构计算
4.3.2 图像分类ResNet实战:眼疾识别——模型构建
这篇文章介绍了如何使用飞桨框架中的ResNet50模型进行眼疾识别的实战,通过5个epoch的训练,在验证集上达到了约96%的准确率,并提供了模型构建、训练、评估和预测的详细代码实现。
|
Android开发 开发工具 git
Android USB转串口通信
一、引用 1、Git上最火的USB转串口通信 2、Android之USB转串口通信 3、安卓开发中的USB转串口通讯 二、截图 废话不多说,先上图,micro usb -> usb 连接的测试温度的外设(其实是个测试粮油品质的,还有TPM值等等) usb_connect.png 三、流程 1、mainfest中注册监听USB拔插动作并且过滤对应vid,pid的设备。
5080 0
|
存储 数据管理 数据处理
阿里云对象存储OSS收费价格表
2023阿里云对象存储OSS收费价格表,阿里云对象存储OSS包年包月和按量付费,存储包、流量包收费价格,OSS标准(LRS)存储包100GB优惠价33元、500GB存储包半年162元、OSS存储包40GB一年9元,OSS流量包100G 49元/月
6506 0
|
NoSQL 安全 JavaScript
Redis分布式锁故障
Redis分布式锁故障
Redis分布式锁故障