mra*_*api 5 c# asp.net-core-mvc asp.net-core
我正在使用 ASP.NET Core 2 我正在尝试访问上下文类中的配置,我已经完成了这样的配置:在 Program.cs 中:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
......
.ConfigureAppConfiguration((builderContext, config) =>
{
IHostingEnvironment env = builderContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
})
.Build();
Run Code Online (Sandbox Code Playgroud)
在 Startup.cs 中:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
Run Code Online (Sandbox Code Playgroud)
我可以在这样的控制器中访问它:
public HomeController(IConfiguration configuration)
{...}
Run Code Online (Sandbox Code Playgroud)
但是如何在上下文类中访问它?谢谢
在您需要 DbContext 类中的 IConfiguration 的情况下,您必须将其添加到构造函数中:
public class MyDbContext : DbContext
{
private readonly IConfiguration _configuration;
public MyDbContext(IConfiguration configuration)
{
_configuration = configuration;
}
}
Run Code Online (Sandbox Code Playgroud)
但是你也必须MyDbContext从 DI那里得到。所以静态类不能接收它作为参数。您将不得不重新考虑如何使用 DbContext,并对其进行更改,以便您在某处获得可以访问 DI 的上下文,并将其作为参数传递给任何需要它的静态方法。
| 归档时间: |
|
| 查看次数: |
5016 次 |
| 最近记录: |