• .NET Core控制台项目中使用DI依赖注入


    本文主要介绍在.net Core 控制台程序中如何进行依赖注入,简单步骤如下

    1、.NET Core Console项目安装引用Nuget包

    Install-Package Microsoft.Extensions.Configuration.EnvironmentVariables
    Install-Package Microsoft.Extensions.Configuration.Json
    Install-Package Microsoft.Extensions.DependencyInjection
    Install-Package Microsoft.Extensions.Logging.Console
    Install-Package Microsoft.Extensions.Logging.Debug
    Install-Package Microsoft.Extensions.Options
    

    2、使用Nuget的界面的管理器安装:

    Microsoft.Extensions.Configuration.EnvironmentVariables
    Microsoft.Extensions.Configuration.Json
    Microsoft.Extensions.DependencyInjection
    Microsoft.Extensions.Logging.Console
    Microsoft.Extensions.Logging.Debug
    Microsoft.Extensions.Options
    

    3、修改Program.cs文件

    static void Main(string[] args)
            {
                var env = Environment.GetEnvironmentVariable("APP_ENVIRONMENT");
    
                //根据环境变量读取配置文件
                string appsetting = !string.IsNullOrEmpty(env) ? $"appsettings.{env}.json" : "appsettings.json";
    
                var services = new ServiceCollection();
    
                // 创建 config
                var configuration = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile(appsetting, optional: false)
                    .AddEnvironmentVariables()
                    .Build();
                services.Configure<ConnectionStrings>(configuration.GetSection("ConnectionStrings"));
                //注入
                services.AddTransient<ILoggerFactory, LoggerFactory>();
                //注入数据库
                var defaultConnection = connectionStrings.DBConnection;
                services.AddLinqToDbContext<DBContext>((provider, options) =>
                {
                    options.UseSqlServer(defaultConnection).UseDefaultLogging(provider);
                });
          
                
                //调用
                var serviceProvider = services.BuildServiceProvider();
    
                var bar = serviceProvider.GetService<*********>();
                bar.*******();
    
                Console.WriteLine("Hello World!");
            }
    

      

  • 相关阅读:
    Git 总结
    .net报错大全
    对于堆和栈的理解
    html 局部打印
    c#面试问题总结
    算法题总结
    h5-plus.webview
    堆和栈,引用类型,值类型,指令,指针
    .NET framework具体解释
    前端之间的url 传值
  • 原文地址:https://www.cnblogs.com/happygx/p/16358276.html
Copyright © 2020-2023  润新知