2

我正在开发一个在启动时执行一些昂贵计算的 C# 库。我想缓存这个计算,这样每次应用程序重新启动时都不会支付成本(想想 EF 和预编译的视图)。

我想缓存的信息很容易以文本格式写入文件。因此,我想在调用库时执行以下操作:

  1. 生成配置参数的唯一哈希。
  2. 检查是否有该哈希的缓存文件。如果是这样,请将其读入并使用它来跳过设置计算。
  3. 如果不是,则执行设置计算并生成由配置参数的哈希命名的适当缓存文件。

此外,我不想永久地在用户的硬盘驱动器上乱扔此类文件:我希望操作系统(很像临时文件)在可能的范围内自动清理它们。

另外,因为这是一个库,所以我不能依赖正在安装的其他软件。因此,我更喜欢纯 .NET 解决方案。

任何人都可以指出一个好的方法/.NET API 来做这样的事情吗?

4

1 回答 1

2

您可能应该使用 ApplicationData 目录来存储缓存文件,例如:

var cacheDir = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), 
    "MyApplicationName");

如果您想要自动清理,您可以在安装过程中创建一个空缓存文件,以便在卸载应用程序时自动删除该文件。或者自己在应用程序的安装程序类中编写清理方法。

我不认为你可以依靠操作系统来做清理,Windows 甚至不能清理自己的垃圾文件。

于 2012-11-03T02:25:06.957 回答