C# MVC控制器中的私有变量

C# MVC控制器中的私有变量,c#,asp.net-mvc,asp.net-mvc-controller,C#,Asp.net Mvc,Asp.net Mvc Controller,我有一个关于MVC架构的问题 我有一个从WCF服务收集数据的类,我们称它为“WCFDataAccess”。此类公开了许多不同的方法来获取或设置数据 在MVC的主控制器内部,我经常需要使用这个“WCFDataAccess”类来收集每条路由的数据 索引路由可能会创建WCFDataAccess对象的实例并收集数据。另一种路由,比如“IndexDetails”,还需要创建WCFDataAccess对象的实例来收集数据 我是否可以通过使“WCFDataAccess”类成为主控制器内部的私有变量来共享该类的

我有一个关于MVC架构的问题

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

在MVC的主控制器内部,我经常需要使用这个“WCFDataAccess”类来收集每条路由的数据

索引路由可能会创建WCFDataAccess对象的实例并收集数据。另一种路由,比如“IndexDetails”,还需要创建WCFDataAccess对象的实例来收集数据

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

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

有什么建议吗


谢谢

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


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

感谢@Ek0nomik的响应,我同意,当前的实现确实有效,构造函数也不是很重。我试着看看是否有更好的方法来实现这一点,而不是每次都重新初始化这个类。我认为每次创建一个新实例没有任何问题。NET framework正在为您在后台为每个请求创建新的对象实例。如果您真的认为可以挤出一些性能,那么我建议您使用静态类。