.Net依赖注入技术学习:搭建自己的服务系统
可以利用依赖注入技术,构建自己的服务系统,示例代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
using System; using Microsoft.Extensions.DependencyInjection; namespace MyStock.MyServices { class MyService { public IServiceProvider Provider => provider; private static IServiceCollection services; private static IServiceProvider provider; /// <summary> /// 构造服务 /// </summary> private static void BuildServices() { services = new ServiceCollection(); //添加自定义的相关服务 /*services.AddChrome(); services.AddMyWorkflow(); services.AddStock();*/ provider = services.BuildServiceProvider(); } /// <summary> /// 获取指定的服务 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T GetService<T>() { if (provider == null) BuildServices(); return provider.GetService<T>(); } } }
在BuildServices函数中,可以添加自定义的服务,自定义的服务可以通过服务扩展的方式来实现:
public static class ServiceCollectionExtensions { /// <summary> /// 添加控制谷歌浏览器的驱动服务扩展 /// </summary> /// <param name="services"></param> /// <returns></returns> public static IServiceCollection AddChrome(this IServiceCollection services) { services.AddSingleton<IChromeHelper,ChromeHelper>(); return services; } }
使用自定义服务时,可以采用如下的代码:
var helper= MyService.GetService<IChromeHelper>();