C# 从Json/XML文件加载菜单的方法,具有良好的内存利用率
我的asp.net MVC应用程序有一个菜单文件“navigationMenu.json”。下面是我如何读取json文件的C# 从Json/XML文件加载菜单的方法,具有良好的内存利用率,c#,asp.net,json,C#,Asp.net,Json,我的asp.net MVC应用程序有一个菜单文件“navigationMenu.json”。下面是我如何读取json文件的 public static class NavigationMenu { public static List<NavigationMenuViewModel> Get() { string jsonMenu = File.ReadAllText(HostingEnvironment.MapPath("/navigat
public static class NavigationMenu
{
public static List<NavigationMenuViewModel> Get()
{
string jsonMenu = File.ReadAllText(HostingEnvironment.MapPath("/navigationmenu.json"));
var menu = JsonConvert.DeserializeObject<List<NavigationMenuViewModel>>(jsonMenu);
return menu;
}
}
公共静态类导航菜单
{
公共静态列表Get()
{
字符串jsonMenu=File.ReadAllText(HostingEnvironment.MapPath(“/navigationmenu.json”);
var menu=JsonConvert.DeserializeObject(jsonMenu);
返回菜单;
}
}
因此,现在当页面加载此方法时,NavigationMenu.Get()
每次调用,并在视图中用于显示菜单
我担心的是,如果这是正确的方式。我是否应该使用静态列表对象来存储菜单并使用列表,而不是每次都从文件中读取?此外,菜单文件中的任何更改也需要立即显示。这取决于各种情况。如果这个文件每小时有4个人访问,那么在工程上就没有意义了。从文件中读取是可以接受的 如果您可以确保对来自应用程序的文件的单点访问(没有其他进程会触及它,如记事本),那么您可以轻松缓存内容,并在从所述单点访问时使其失效/刷新 如果存在大量流量并且无法确保受控访问,您还可以拥有一个缓存,该缓存将在几秒钟内过期。我假设用户可以使用陈旧的数据生活3秒钟。此外,如果应用程序仅在初始加载时请求导航,许多用户将错过更新,直到他们刷新整个页面