当我创建 .NET Core 控制台应用程序时,不会像 ASP.NET Core 应用程序那样包含 appsettings.json 文件。
答案 0 :(得分:0)
通常,配置被注入到类的构造函数中。但是,对于控制台应用程序,默认情况下未配置依赖项注入。所以我们需要添加几行代码来完成这个。
var host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) => {
services.AddTransient<IDoSomethingService, DoSomethingService>();
})
.Build();
var svc = ActivatorUtilities.CreateInstance<DoSomethingService>(host.Services);
svc.Generate();
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
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"));
}
}
{
"ConnectionStrings": {
"Test": "TEST_CONNECTION_STRING"
}
}