-1

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

例如:实例化一个 DbContext 并在每次需要时直接从 de Application 变量中使用它。

这意味着性能的真正提升?

在全球 asa 中:



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

然后使用:



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

4

1 回答 1

1

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

于 2017-12-04T19:53:07.260 回答