.Net or .Net Core依赖注入实现Microsoft.Extensions.DependencyInjection

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net or .Net Core依赖注入实现Microsoft.Extensions.DependencyInjection相关的知识,希望对你有一定的参考价值。

依赖注入的优点

(1)有效地设计服务及其依赖关系。

(2)防止多线程问题。

(3)防止内存泄漏。

(4)防止潜在的错误。

工程代码下载

.Netor.NetCore依赖注入实现-C#文档类资源-CSDN下载

一、新建控制台项目

新建StartUp类,代码如下,如果你们没有用到Logger删掉Logger相关内容即可

using FileLogger;

namespace UnityDataManageServiceHost

    class StartUp
    
        public static void Main(string[] args)
        
            //setup our DI
            var serviceProvider = new ServiceCollection()
                .AddSingleton<ILogger, Log4netLogger>()
               .BuildServiceProvider();
            //configure console logging
            serviceProvider
                .GetService<ILogger>().Initialize("UnityDataManageServiceHost");
            serviceProvider
                .GetService<ILogger>().LogLevel = LoggingEventType.Debug;
            //save log
            var _logger = serviceProvider.GetService<ILogger>();
            _logger.Debug(typeof(StartUp), "Starting application");
            //全部异常捕获,优雅退出
            try
            
            
            catch (Exception ex)
            
                _logger.Debug(typeof(StartUp), "Main Exception" + " Exception=" + ex);
            
            _logger.Debug(typeof(StartUp), "Stop application");
            System.Diagnostics.Process.GetCurrentProcess().Kill();
        

        //入口函数
        public static void Start(ServiceProvider serviceProvider)
        
            var logger = serviceProvider.GetService<ILogger>();
        
    

安装依赖Microsoft.Extensions.DependencyInjection,或使用nuget进行安装

选择合适的版本进行安装

二、运行测试

以上是关于.Net or .Net Core依赖注入实现Microsoft.Extensions.DependencyInjection的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中的依赖注入:依赖注入(DI)

没有 [ServiceFilter] 或 [TypeFilter] 的过滤器中的 Asp.net Core 依赖注入

.NET Core 3.1 中的依赖注入具有多种实现 [重复]

Asp.net Core AutoFac根据程序集实现依赖注入

ASP.NET Core依赖注入高级玩法——如何注入多个服务实现类

.Net Core 中同一接口多个实现依赖注入的问题