0
点赞
收藏
分享

微信扫一扫

NetCore 控制台应用程序依赖注入

吴wuwu 2022-06-27 阅读 41

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

新建控制台应用程序并添加appsettings.json文件,并将属性-复制到输出目录,设置为如果较新则复制。

项目中添加Nuget包:Microsoft.Extensions.Hosting,选择最新预发行版

NetCore 控制台应用程序依赖注入_json

代码如下:

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
namespace Test
{
internal class Program
{
static void Main(string[] args)
{
var builder = new HostBuilder().ConfigureAppConfiguration((hostContext, configApp) =>
{
configApp.AddJsonFile("appsettings.json");
}).
ConfigureServices((hostContext, services) =>
{
//类似startUp
services.AddTransient<ITestD1, TestD1>();
}).UseConsoleLifetime();

var host = builder.Build();
using (var serviceScope = host.Services.CreateScope())
{
var services = serviceScope.ServiceProvider;
var myConfig = services.GetRequiredService<IConfiguration>();
Console.WriteLine(myConfig.GetSection("mykey"));
//其他类中获取
var myService = services.GetRequiredService<ITestD1>();
Console.WriteLine(myService.GetConfig("mykey"));
//
}
}
}


public interface ITestD1
{
string GetConfig(string key);
}

public class TestD1 : ITestD1
{
/// <summary>
/// 配置信息
/// </summary>
private readonly IConfiguration _configuration;

/// <summary>
/// 构造函数的方式进行依赖注入
/// </summary>
/// <param name="configuration"></param>
public TestD1(IConfiguration configuration)
{
_configuration = configuration;
}

public string GetConfig(string key)
{
return _configuration.GetSection(key).Value;
}
}
}

@天才卧龙的博客


举报

相关推荐

0 条评论