我有一个关于MVC架构的问题。
我有一个从WCF服务收集数据的类,我们称它为"WCFDataAccess"。该类公开了许多获取或设置数据的不同方法。在MVC中的Home Controller中,我经常需要使用这个'WCFDataAccess'类来收集每个路由的数据。
索引路由可能会创建WCFDataAccess对象的实例并收集数据。一个不同的路由,比如'IndexDetails'也需要创建一个WCFDataAccess对象的实例来收集数据。
我可以通过使其成为Home控制器内部的私有变量来共享'WCFDataAccess'类的实例而不会对性能产生负面影响吗?如果两个请求来在同一时间到控制器类如何使用私有变量工作?
另一个想法是使用HttpContext.Current.Cache类。
有什么建议吗?
谢谢!
将控制器中的对象设为私有并不会使其在多个请求之间共享。每个请求都将创建一个对象的新实例。
在构造这个对象时,是否有一个繁重的操作,你想让它共享?如果它只是简单地实例化一个web服务客户端,它应该是相当轻量级的,并且每个请求重新创建它应该不会导致任何性能下降。