这实际上是代码的结构问题,因为我对如何继续考虑性能有点不确定。
在应用程序中,我有一个方法,必须在每个请求上运行,然后根据URL获取一些值,然后才能发生其他任何事情(Think CMS需要知道正在查找哪个站点在)。
我总是在Initialize
上的'BaseController'中完成此操作,所有其他控制器继承自此,这似乎工作得很好。即我将结果放在一个公共变量中,并且可以在ActionResult
或任何我需要的任何内容中访问它。关键是每页请求只调用一次。
现在我们从根本上将结构更改为更“小部件”的风格。每个小部件都需要这些数据,页面上可能有1到1个小部件。
当我获得每个小部件的模型时,我不希望每次都获得相同的信息,然后才能获得小部件的“实际”数据。
因此,我应该在循环之前获取'数据'并将其提供给每个小部件的方法调用....或者这是某种类型的依赖注入可以帮助的情况? (我在那个区域有点'绿色':P)
我只是不想将每个小部件方法都写成例如。
public List<string> WidgetAResult (object TheCoreObj, ... other stuff ...){}
并且我也不希望每个小部件的'sql'脚本在开头都有相同的代码,因为如果'core'调用中的某些内容发生了变化,那么我需要更新所有小部件...
任何想法都将不胜感激
干杯
罗宾