MVC控制器中的私有变量

时间:2013-06-12 21:40:29

标签: c# asp.net-mvc asp.net-mvc-controller

我对MVC架构有疑问。

我有一个从WCF服务收集数据的类,我们称之为'WCFDataAccess'。此类公开了许多不同的方法来获取或设置数据。

在MVC的Home Controller中,我经常需要使用这个'WCFDataAccess'类来收集每个路由的数据。

索引路由可能会创建WCFDataAccess对象的实例并收集数据。一个不同的路由,比如'IndexDetails'也需要创建一个WCFDataAccess对象的实例来收集数据。

我可以通过在家庭控制器内部将其作为私有变量来共享“WCFDataAccess”类的实例,而不会对性能产生负面影响吗?如果有两个请求同时进入控制器类,那么使用私有变量的工作原理是什么?

另一个想法是使用HttpContext.Current.Cache类。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

在控制器中将您的对象设为私有不会使其在请求之间共享。将为每个请求创建一个新的对象实例。

在构建要使其共享的对象时是否存在繁重的操作?如果它只是实例化一个应该相当轻量级的Web服务客户端,并且每个请求重新创建它应该不会导致任何性能下降。