我对MVC架构有疑问。
我有一个从WCF服务收集数据的类,我们称之为'WCFDataAccess'。此类公开了许多不同的方法来获取或设置数据。
在MVC的Home Controller中,我经常需要使用这个'WCFDataAccess'类来收集每个路由的数据。
索引路由可能会创建WCFDataAccess对象的实例并收集数据。一个不同的路由,比如'IndexDetails'也需要创建一个WCFDataAccess对象的实例来收集数据。
我可以通过在家庭控制器内部将其作为私有变量来共享“WCFDataAccess”类的实例,而不会对性能产生负面影响吗?如果有两个请求同时进入控制器类,那么使用私有变量的工作原理是什么?
另一个想法是使用HttpContext.Current.Cache类。
有什么建议吗?
谢谢!
答案 0 :(得分:5)
在控制器中将您的对象设为私有不会使其在请求之间共享。将为每个请求创建一个新的对象实例。
在构建要使其共享的对象时是否存在繁重的操作?如果它只是实例化一个应该相当轻量级的Web服务客户端,并且每个请求重新创建它应该不会导致任何性能下降。