C#实现应用程序范围的缓存

时间:2011-11-30 09:17:17

标签: c# winforms

在我们的应用程序中,我们想要'翻译'标签。我不想为同一个标签多次点击数据库。因此,当我已经获取术语X时,我想从缓存中获取该术语。

现在我正在考虑如何实现这一点。我可以想到这个选项:

  1. 创建一个单身人士。所以基本上你要创建一个公共变量
  2. 创建一个包含静态列表的类,其中包含缓存的翻译。
  3. 你应该怎么做?

    我正在使用C#winforms。

    编辑: 我不是指lanquage翻译,而是术语翻译。我们的客户对同一件事有自己的用语。所以这是我们的应用程序中的一个设置。假设您有术语X,他们可以说,我想调用Z.因此,在使用X的应用程序中,必须显示Z.

    每个表单都有一些带有(相同)术语的标签。所以数据本身很小(只有一个单词),但它可能会进入数据库20次以获得一个表单的术语。

2 个答案:

答案 0 :(得分:2)

ASP.NET HttpCache也可以在ASP.NET之外使用。您可以将其用作缓存的支持机制,并通过Singleton访问它。

如果它适合您的场景,另一个选项可能是一个T4模板,它将解析您的数据库并在编译时生成一个类。这比在运行时查找数据库更快。只有当数据库中的某些内容发生变化时,您才必须重新运行T4并部署新的程序集。

答案 1 :(得分:0)

为什么不尝试应用程序设置。虽然我不建议将其用于大量数据bcoz,但它往往会对应用程序造成负担,而不是用于存储大数据,但如果数据量很小,则可以使用它。

转到项目>属性>设置标签,然后添加类型数据集用户类型设置(使用浏览选项以获取更多类型)或更接近您需要的设置。 在运行时使用

分配或检索
<datatype> obj=Properties.Settings.Default.<yoursettingname>;

Adding Settings

enter image description here