程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net ViewState——自定義狀態管理(一)

Asp.net ViewState——自定義狀態管理(一)

編輯:關於ASP.NET

在寫自己的控件的時候我們不可能一直只定義string,int等內置類型的屬性-夜路走多了總會撞鬼的.當遇到復雜屬性(自定義的類型)時,我們該如何來保存其視圖狀態呢.這個問題困擾了我很久...

下面我想用幾個小例子表達下自己的'捉鬼'經歷.

Husband

namespace Controls
{
  using System;
  using System.Collections.Generic;
  using System.Text;
  using System.Web.UI;
  public class Husband: Control
  {
    public Wife MyWife
    {
      get
      {
        .
      }
      set
      {
        ViewState["MyWife"] = value;
      }
    }
  }
  public class Wife
  {
    private string m_Name;
    private int m_Age;
    public string Name
    {
      get { return m_Name; }
      set { m_Name= value; }
    }
    
    public int Age
    {
      get { return m_Age; }
      set { m_Age= value; }
    }
  }
}

看見這段代碼,很多朋友估計都要罵我了,為什麼呢,運行下吧:發現會拋出以下異常

Type 'Controls.Wife' in Assembly 'Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

在看見這種異常後,以前我都會直接在Wife前面加上[Serializable]Attribute,加上之後的確運行成功了但是很不幸,這種方式是要挨板磚的.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved