我正在使用一个.NET Core7 Worker项目,在该项目中,我希望将应用程序设置添加到我的program.cs类中,但为此,我需要来自宿主上下文的IConfiguration接口.

我如何才能将其作为单例注入到项目中?

以下是我的代码:

IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        // Here I want to add a configuration from appsettings.json and then map it to my Configuration class
        services.AddHostedService<Worker>();
    })
    .Build();

host.Run();

以下是我的appsettings.json条:

{
    "ServiceName": "Test service",
    "connectionString": ""
}
public class Configuration
{
    public string ServiceName { get; set; }
    public string ConnectionString { get; set; }
}

推荐答案

您可以使用Bind method将配置段绑定到静态类型化对象实例.

Configuration.GetSection(PositionOptions.Position).Bind(positionOptions);

或者更方便的Get方法

 Configuration.GetSection(PositionOptions.Position).Get<PositionOptions>() 

Csharp相关问答推荐

需要深入了解NpgSQL DateTimeOffset处理

在FilePath中搜索一个词,并根据First Match从左到右提取文件路径

在实时数据库中匹配两个玩家的问题

将轮询与超时同步

Rx.Net窗口内部可观测数据提前完成

Blazor在FluentButton onClick事件上设置参数

为什么Regex.IsMatch(";\\t";,";\\t";)返回FALSE而不是TRUE?

如何使用EF Core和.NET 8来upsert到具有多对多关系的表?

BlockingCollection T引发意外InvalidOperationException

在不添加不必要的尾随零的情况下本地化浮点型?

Swagger没有显示int?可以为空

当try 测试具有协变返回类型的抽象属性时,类似功能引发System.ArgumentException

基于C#方法的EF核心过滤查询(缓冲与流)

C#静态抽象属性不能被子接口覆盖

try 创建一个C#程序,该程序使用自动实现的属性、覆盖ToString()并使用子类

流畅的验证--如何为属性重用规则?

映射器-如何映射到多个实体

SharpZipLib在文件名前加上目录名,生成tar.gz

获取应用程序版本信息时出现奇怪信息

如果所有";async任务方法()";调用都返回Task.FromResult()-是否同步执行?