如何将文件放入 dotnet 的缓存中?

How can I put a file in cache in dotnet?

我一直在尝试通过 JSON 文件在 .NET 6.0 中实现本地化,以及一种实现方式(请注意资源以 JSON 的形式提供,格式不同,例如有嵌套对象和其他简单的键值)是为了实现 IStringLocalizer 接口,当然每次查找 IDistributedCache[= 中不存在的东西时18=] 然后加载文件,进行相应的解析并将键值对插入分布式缓存。

但是,在分布式缓存中不存在的每个条目上,我将不得不加载文件(这是 IO 查找,我猜这对应用程序来说相当昂贵,尤其是在缓存频繁丢失的情况下) 并根据我要读取的文件获取值。

有没有办法在调用启动时加载文件并将其简单地注入到我制作的本地化程序扩展中?

您可以像这样在 Startup 中调用管理本地化的服务

app.Services.GetService<IMyLocalizationService>().LoadLocalization()

在那一刻应该构建 DI,因此您应该可以访问 IDistributedCache