小编ele*_*h.j的帖子

将 appsettings 配置 DI 添加到 HostBuilder 控制台应用程序

我正在尝试将appsettings.json文件包含在我正在使用的 .NET Core 控制台应用程序中HostBuilder,并尝试将一个部分 (AppVars) 添加到配置中。当我尝试这样做时,我收到错误:

System.InvalidOperationException:尝试激活时无法解析类型 AppVars 的服务...

这是我的代码:

private static async Task Main(string[] args)
{
    var isService = !(Debugger.IsAttached || args.Contains("--console"));

    var config1 = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: true)
        .Build();

    var builder = new HostBuilder()
        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<FileWriterService>();

            services.Configure<AppVars>(config1.GetSection("AppVars"));

        });

    //...
}
Run Code Online (Sandbox Code Playgroud)

下面我尝试在类中注入 AppVars:

public class FileWriterService : IHostedService, IDisposable
{
    private const string Path = @"d:\TestApplication.txt";

    private Timer _timer;
    private AppVars _appVars;
    public FileWriterService(AppVars appVars)
    {
       //_appVars = appVars;
    } …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection appsettings asp.net-core

4
推荐指数
1
解决办法
1万
查看次数