.Net依赖注入技术学习:搭建自己的服务系统

可以利用依赖注入技术,构建自己的服务系统,示例代码如下:

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

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

 

posted @ 2021-02-18 16:50  顺其自然,道法自然  阅读(121)  评论(0编辑  收藏  举报