如何将配置文件添加到 .NET Core 控制台应用程序?

时间:2021-05-12 20:17:03

标签: .net .net-core

当我创建 .NET Core 控制台应用程序时,不会像 ASP.NET Core 应用程序那样包含 appsettings.json 文件。

1 个答案:

答案 0 :(得分:0)

通常,配置被注入到类的构造函数中。但是,对于控制台应用程序,默认情况下未配置依赖项注入。所以我们需要添加几行代码来完成这个。

  1. 首先,我们需要添加 Microsoft.Extensions.Hosting NuGet 包。
  2. 添加 appsettings.json 文件。注意:它必须准确命名。
  3. 将以下代码添加到 Program.cs 文件的 Main 过程中:
var host = Host.CreateDefaultBuilder()
    .ConfigureServices((context, services) => { 
        services.AddTransient<IDoSomethingService, DoSomethingService>(); 
    })
    .Build();

var svc = ActivatorUtilities.CreateInstance<DoSomethingService>(host.Services);

svc.Generate();
  1. 您需要以下 using 语句:
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
  1. 创建包含应用程序代码的类(可能还有接口)。确保将配置注入到构造函数中。
class DoSomethingService : IDoSomethingService
{

    private IConfiguration _config;

    public DoSomethingService(IConfiguration config)
    {
        _config = config;
    }

    public void Generate()
    {
        System.Console.WriteLine("Generate is running.");
        System.Console.WriteLine(_config.GetConnectionString("Test"));
    }

}

  1. 在此示例中,我们将连接字符串存储在 appsettings.json 文件中,如下所示:
{
  "ConnectionStrings": {
    "Test": "TEST_CONNECTION_STRING"
  }
}