配置系统
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.Configuration 是 context.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"];
}
}
抠丁客


