我有一个具有Person类的类库。 Person类包含CountryName和CountryCode的属性。 CountryCode是存储在Person表中的值。从附带的查找表中检索CountryName。
因为CountryName和CountryCode之间的映射不太可能发生变化,所以我觉得在Person业务对象中使用缓存进行查找很舒服。
我的类库将来会用于ASP.NET站点以及控制台和Windows应用程序。 实现此类通用缓存的正确机制是什么?(注意小“g”,而不是.NET Generics)
您可能会认为缓存应该在不同的层进行,但我仍然可以从适用于任何类型的.NET项目的缓存机制中受益。
答案 0 :(得分:2)
我使用Enterprise Library缓存应用程序块来缓存我的应用程序的每一层。在ASP.NET中,我使用内置的ASP.NET缓存。
我实际上建议您使用与实现无关的缓存接口创建一个单独的程序集。这样,如果需要,您可以稍后交换实现,而无需在大量的地方更改代码。这也允许您在ASP.NET和其余代码中使用相同的缓存接口,但是使用像Unity这样的依赖注入框架来交换实际的实现。