我正在开发一个C#库,它在启动时执行一些昂贵的计算。我想缓存这个计算,以便每次应用程序重新启动时都不支付成本(想想EF和预编译的视图)。
我想要缓存的信息很容易写入文本格式的文件。因此,我想在调用库时执行以下操作:
此外,我不想永久地丢弃用户的硬盘驱动器这样的文件:我希望它们能够被操作系统自动清理(很像临时文件)到可能的程度。
另外,因为这是一个库,我不能依赖于正在安装的其他软件。因此,我更喜欢纯.NET解决方案。
有人能指点我做一个好的方法/ .NET API来做这样的事吗?
答案 0 :(得分:1)
您应该使用ApplicationData目录来存储缓存文件,例如:
var cacheDir = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"MyApplicationName");
如果要进行自动清理,可以在安装过程中创建空缓存文件,以便在卸载应用程序时自动删除该文件。或者在应用程序的安装程序类中自己编写清理方法。
我不认为你可以依靠操作系统来进行清理,Windows甚至无法清理自己的垃圾文件。