【发布时间】:2020-04-25 03:43:46
【问题描述】:
如何在 ASP.NET Core 的启动期间(在我的 Startup .cs 类)我的应用程序?这些数据是否可用于我的各种控制器?
我在数据库表中有一些应用程序范围的设置,我想将它们加载到内存中,并在应用程序的整个生命周期内使用它们,而不必再次访问数据库。
【问题讨论】:
标签: asp.net-core .net-core entity-framework-core
如何在 ASP.NET Core 的启动期间(在我的 Startup .cs 类)我的应用程序?这些数据是否可用于我的各种控制器?
我在数据库表中有一些应用程序范围的设置,我想将它们加载到内存中,并在应用程序的整个生命周期内使用它们,而不必再次访问数据库。
【问题讨论】:
标签: asp.net-core .net-core entity-framework-core
通常您希望使用将结果加载到静态属性上的方法。例如像一个列表。所以像这样的静态类就可以解决问题。
public static class Settings
{
public static Dictionary<string,string> Settings {get; set;}
}
代码应放在配置的末尾。有两种方法可以做到这一点。
更简单的方法
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// your other code
var yourService = new YourService();
Settings.Data = yourService.GetData();
}
依赖弹出方式
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IYourservice yourService)
{
// your other code
Settings.Data = yourService.GetData();
}
警告上述方法仅在您使用依赖注入时才有效。通常,您希望在应用程序完成配置后调用这些方法。将代码拆分为不同的文件或/和方法是个好主意。
【讨论】: