首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dotnet core/razor页面中存储/检索静态数据的最有效方法

在dotnet core/razor页面中存储/检索静态数据的最有效方法
EN

Stack Overflow用户
提问于 2021-07-26 23:53:28
回答 1查看 83关注 0票数 1

我需要在每个页面上显示我的应用程序的一些基本信息(使用_Layout.cshtml)

目前我展示的app版本如下:

代码语言:javascript
复制
<span>version @(System.Reflection.Assembly.GetExecutingAssembly().GetName().Version)</span>

但是,我还需要包括数据库版本和一些其他配置信息(在应用程序启动时从数据库获得)。

我的问题是,哪里是保存这些信息的最有效的地方,以便尽可能快地生成页面?我的直觉告诉我,System.Reflection每次获取版本都很慢(但这可能是完全错误的)。

在应用启动时将适当的信息保存到IConfiguration是否有意义?在每次页面加载时从IConfiguration访问数据是一种有效的方法吗?

我使用这里描述的IMemoryCache会更好吗?https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-5.0

在这里使用标签助手有意义吗?(https://www.learnrazorpages.com/razor-pages/tag-helpers/cache-tag-helper)

如果问题有点含糊,很抱歉--任何想法都很受欢迎(包括告诉我我什么都不担心!)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-26 16:09:51

一种选择是创建一个提供版本信息和register as a singleton的服务类。然后,您可以将此服务注入到您的布局中,以便根据需要获得要呈现的数据。

_Layout.cshtml:

代码语言:javascript
复制
@inject IMyVersionService versionService
@{
    string version = versionService.GetVersion();
}
<!DOCTYPE html>
...
<span>@version</span>

因为该服务是单例的,所以它将在第一次访问时被初始化一次,并且在之后的访问中将非常有效。您可以在构造函数中使用解析的版本信息设置一个私有字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68532962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档