我运行一个C#.net网站,在那里我将四个变量存储在" file.txt"中。存储在.txt fil中的原因是需要轻松访问进行更改。
变量用于用户为完整会话呈现的每个页面。从每个网页浏览的文件中读取变量似乎是不必要的艰苦工作。
.txt文件的大小约为500字节。
存储这些变量的最佳方法是什么?
答案 0 :(得分:1)
我建议在文件更改时使用带有过期的缓存
using System.Runtime.Caching;
public static TResult GetOrSetFileCache<TResult>(string key, Func<string, TResult> value, string path)
{
if (MemoryCache.Default.Contains(key))
return (TResult) MemoryCache.Default.Get(key);
var val = value(key);
var policy = new CacheItemPolicy
{
SlidingExpiration = TimeSpan.FromSeconds(600)
});
policy.ChangeMonitors.Add(new HostFileChangeMonitor(new List<string> { path }))
MemoryCache.Default.Set(key, value, policy);
return val;
}
HostFileChangeMonitor在文件更改时使缓存失效,并执行value()方法以获取新值。
几乎总是从缓存中获取值非常快。
答案 1 :(得分:0)
我最终缓存了四个字符串而不是文件。然后我也阻止读取每个页面加载的文件内容。
string cachedString;
cachedString = (string)Cache["CacheItem"];
if (cachedString == null)
{
cachedString = "Hello, World.";
Cache.Insert("CacheItem", cachedString);
}
基于msdn的代码,它得出了一个相当基本的解决方案。只是修改它以允许几个字符串。 :)
感谢所有投入。