【问题标题】:Global class variable for ASP.NETASP.NET 的全局类变量
【发布时间】:2015-05-24 15:59:33
【问题描述】:

我正在构建一个包含 2 个项目的 ASP.NET 应用程序。 一个是具有 BL 代码的类库。 我想从 BL 中的一个类创建一个公共类实例变量。 此类实例变量是为了避免在每个请求上加载所有数据,这使我的应用程序对每个请求的响应速度变慢。 如何使全局类变量在 page_Load 处加载数据,并一直保存到用户重定向到另一个页面。

【问题讨论】:

  • 那么,真正的问题是什么?
  • 问题是如何在 pageLoad 加载值,并一直保存到用户重定向到另一个页面。

标签: c# asp.net .net oop


【解决方案1】:

在 ViewState 中创建它并将其包装在一个属性中以便于使用。类似的东西:

public MyClass MyObj {
    get {
        if (ViewState["MyObj"] == null){
             ViewState["MyObj"] = new MyClass();
        }
        return ViewState["MyObj"]; 
    }
    set {
        ViewState["MyObj"] = value;
    }
}

【讨论】:

  • 视图状态的容量是多少?它可以容纳多少数据?
  • 当您在视图状态中插入大量数据时。ViewState 涉及额外的序列化和反序列化对象的重载,因此涉及额外的处理时间。它会影响性能。
  • 并且视图状态存储在页面html中,因此用户将在每次请求时下载它
  • 值得一提的是MyClass必须标记为Serializable
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2019-03-10
  • 1970-01-01
相关资源
最近更新 更多