我想在ASP.NET MVC应用程序中维护一个对象/连接池。池的目的是通过重用与第三方Web服务的连接来提高性能。第三方Web服务需要登录调用,该调用返回会话ID - 池会保存这些会话ID。
我的问题是,我在哪里实例化这个对象池,以便它可以在所有请求中使用?它只会被1个控制器使用,但是如果我在控制器中实例化它,我相信即使它是一个单例,也会为每个用户请求实例化一个新的对象池? 将它存储在Application状态是否合理?
答案 0 :(得分:2)
您所指的对象池有一个名称:它通常称为缓存。
你可以使用ObjectCache
类,更具体地说是MemoryCache类,它是它的一个实现。
答案 1 :(得分:0)
我不知道你是如何实现你的对象/连接池的,但如果你遵循Object Pooling Pattern,你可以简单地应用Singleton模式并在global.asax中的Application_Start中做一些初始化代码(早期加载)。 / p>