项目

配置系统

ASP.NET Core 提供了一套基于键值对的灵活可扩展配置系统。该配置系统属于 Microsoft.Extensions 类库的一部分,独立于 ASP.NET Core 运行环境。这意味着它可以被应用于任何类型的应用程序。

请参阅 微软官方文档 深入了解配置基础设施。ABP框架与这套配置系统保持100%兼容。

获取配置信息

在代码库的不同位置,您可能需要获取 IConfiguration 服务。以下介绍两种常见获取方式。

在模块类中获取

通常在应用程序初始化时需要获取配置。您可以在 模块类 中通过 ServiceConfigurationContext.Configuration 属性获取 IConfiguration 服务,如下例所示:

public class MyAppModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        var connectionString = context.Configuration["ConnectionStrings:Default"];
    }
}

context.Configurationcontext.Services.GetConfiguration() 方法的快捷方式。通常在模块类中建议使用 context.Configuration,这样既简洁又易读。在其他场景中,当您拥有 IServiceCollection 对象但无法访问 context.Configuration 属性时,可使用 context.Services.GetConfiguration()IServiceCollection.GetConfiguration 是一个扩展方法,可在任何拥有 IServiceCollection 对象的场景中使用)。

在服务类中获取

您可以直接通过 依赖注入IConfiguration 服务注入到您的服务中:

public class MyService : ITransientDependency
{
    private readonly IConfiguration _configuration;

    public MyService(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
    public string? GetConnectionString()
    {
        return _configuration["ConnectionStrings:Default"];
    }
}

扩展阅读

在本文档中