繁体   English   中英

Asp.Net Mvc控制器静态构造函数

[英]Asp.Net Mvc controller static constructor

我正在尝试创建一个具有主控制器的站点,它具有两个构造函数-静态和无参数。 按照规范,应该首先调用静态对象一次,以初始化类的静态成员,但是从没有调用过,为什么呢? 如何为某些人员实现单一存储,应该可以从控制器进行访问?

编辑:我想我尝试调试它时会犯一些错误,因为,今天它像预期的那样工作,静态构造函数被调用一次,而常规调用之前。

在ASP.NET MVC中,将静态构造函数用于控制器不是很常见。 我不知道您到底想达到什么目的,但是global.asax Application_Start似乎是执行应用程序初始化的更好的地方。 另外,控制器可访问的单个存储是什么意思? 您不能使用用于存储应用程序范围内的东西(与会话相反)的HttpContext.CacheHttpContext.Application对象吗? 它们还具有线程安全的优点,因此您无需同步对这些存储的访问。

就静态控制器构造函数而言,应在默认构造函数之前调用它,并且每个应用程序仅应调用一次,这由CLR保证。 为此,它需要完全具有以下签名(私有,无返回类型,与包含类型相同的名称):

public class HomeController: Controller
{
    // This is the exact signature of a static constructor
    static HomeController()
    {

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM