【发布时间】:2021-08-28 14:47:29
【问题描述】:
我正在尝试使用loading views from a database,正如文章中所建议的那样,可能需要添加一些缓存以防止每次都访问数据库。
ConfigureServices:
services.AddHttpContextAccessor();
services.AddMemoryCache();
services.AddRazorPages()
.AddRazorRuntimeCompilation(opt =>
{
opt.FileProviders.Add(new DatabaseFileProvider(Configuration["AppSettings:SQLConnectionString"]));
});
DatabaseFileProvider构造函数:
private string _connection;
public DatabaseFileProvider(string connection)
{
_connection = connection;
}
如何依赖注入 IMemoryCache 的实例到 DatabaseFileProvider 类?单身人士:
ConfigureServices:
services.AddSingleton<AppUtils>();
AppUtils构造函数:
private static IMemoryCache _cache;
public AppUtils(IMemoryCache cache)
{
_cache = cache;
}
【问题讨论】:
-
@Nkosi -- 如果您可以提供一个示例的答案,如果我将 Options 和 IMemoryCache 都注入到 DatabaseFileProvider 中,我将不胜感激,因为我不能看看应该怎么做(当谈到 ASP.NET Core 及其设置/配置方式时,我是一个真正的新手)。
标签: c# dependency-injection asp.net-core-5.0 runtime-compilation fileprovider