C# 应用程序变量中的实例

C# 应用程序变量中的实例,c#,performance,application-variables,C#,Performance,Application Variables,实例化类并将它们保存在应用程序变量中,然后使用它们,而不必在每个请求中实例化它们,这是否正确 例如:实例化DbContext,并在每次需要时直接从de应用程序变量使用它 这意味着性能有了真正的提高 在全球asa中: protected void Application_Start() { Application["db"] = new Models.dbContext(); } 然后使用: db = (dbContext)HttpContext

实例化类并将它们保存在应用程序变量中,然后使用它们,而不必在每个请求中实例化它们,这是否正确

例如:实例化DbContext,并在每次需要时直接从de应用程序变量使用它

这意味着性能有了真正的提高

在全球asa中:



    protected void Application_Start()
    {
    Application["db"] = new Models.dbContext();
    }

然后使用:



    db = (dbContext)HttpContext.Current.Application["db"];


DbContext
s几乎总是应该根据需要实例化和丢弃。连接池和各种其他幕后优化意味着这是非常有效的。另外,如果您使用的是
HttpClient
,您可能应该为所有调用创建一个单独的调用(因为它不能执行连接保持活动)。这取决于您是存储在“应用程序”变量中,还是仅仅作为全局静态变量。但是HttpClient是个例外-除非您需要在应用程序的生命周期内维护状态,或者有一些特定于实现的原因,否则有很好的理由避免使用全局范围和/或生命周期的变量。

您能给我们展示一个吗?Microsoft建议:“使用Web应用程序时,请为每个请求使用上下文实例。”详细信息如下: