如何从 ConfigureServices() 中访问 CreateDefaultBuilder() 提供的 IConfiguration?
How to access IConfiguration provided by CreateDefaultBuilder() from within ConfigureServices()?
我通常会做以下事情
static void Main()
{
IConfiguration config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
Host.CreateDefaultBuilder()
.ConfigureServices(isc =>
{
isc.AddSingleton(config);
isc.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(config.GetConnectionString("Duplicate"));
});
})
.Build();
}
我只知道 appsettings.json
的配置已经由 CreateDefaultBuilder()
提供,所以我想我应该能够简化我的代码如下。
static void Main()
{
Host.CreateDefaultBuilder()
.ConfigureServices(isc =>
{
isc.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(********.GetConnectionString("Duplicate"));
});
})
.Build();
}
问题
如何获取默认提供的配置********
?
您可以使用 ConfigureServices
的另一个重载来访问它:
Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
var config = context.Configuration;
});
我通常会做以下事情
static void Main()
{
IConfiguration config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
Host.CreateDefaultBuilder()
.ConfigureServices(isc =>
{
isc.AddSingleton(config);
isc.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(config.GetConnectionString("Duplicate"));
});
})
.Build();
}
我只知道 appsettings.json
的配置已经由 CreateDefaultBuilder()
提供,所以我想我应该能够简化我的代码如下。
static void Main()
{
Host.CreateDefaultBuilder()
.ConfigureServices(isc =>
{
isc.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(********.GetConnectionString("Duplicate"));
});
})
.Build();
}
问题
如何获取默认提供的配置********
?
您可以使用 ConfigureServices
的另一个重载来访问它:
Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
var config = context.Configuration;
});