C# NET4之前的内存缓存

C# NET4之前的内存缓存,c#,.net,caching,memorycache,C#,.net,Caching,Memorycache,我想使用新的MemoryCache类,但我还没有使用.NET4。我有一个简单的缓存类(内部使用字典)。像MemoryCache这样使用这个类的好方法是什么?有人知道在应用程序(非asp.net)的整个生命周期内如何管理MemoryCache吗?也许您可以使用Structuremap之类的工具来实现这一点?它并不是真的要做这些事情(它是一个DI容器),但如果您将某些项指定为单例,某些项指定为基于请求的,等等,它会很好地工作。这取决于您希望生命周期管理的粒度。有一个缓存块,类似于.Net 4现在在核

我想使用新的MemoryCache类,但我还没有使用.NET4。我有一个简单的缓存类(内部使用字典)。像MemoryCache这样使用这个类的好方法是什么?有人知道在应用程序(非asp.net)的整个生命周期内如何管理MemoryCache吗?

也许您可以使用Structuremap之类的工具来实现这一点?它并不是真的要做这些事情(它是一个DI容器),但如果您将某些项指定为单例,某些项指定为基于请求的,等等,它会很好地工作。这取决于您希望生命周期管理的粒度。

有一个缓存块,类似于.Net 4现在在核心框架上的缓存块


它是在版本5中出现的,但我想它已经从版本6中删除了。获取旧版本的企业库将为您提供一种缓存机制。

我们谈论的是多线程应用程序吗?因为这会使事情变得更加复杂,所以在内部使用字典的类有什么问题?我通常就是这样做的。我不能在不使用DI工具的情况下将缓存类设置为单例吗?你可以,但这不会解决你的生命周期管理问题。将其设置为单例将使所有对象永久使用。它将使缓存在应用程序的整个生命周期内使用,这正是我想要的。我错过什么了吗?exe的生命周期很短—每次执行1-2分钟—毫无疑问,它是单例的。