讀 PetShop代碼(Profile篇)

來源:互聯網
上載者:User

用於儲存與使用者有關的資料,維護應用程式狀態。Profile對象提供一個建立強型別和持久化方式的工作階段狀態的方法。

以Profile.ShoppingCart.Add();

   Profile.Save();

   的執行流程為例

首先設定檔部分代碼如下:

Code
<profile automaticSaveEnabled="false" defaultProvider="ShoppingCartProvider">
      <providers>
        <add name="ShoppingCartProvider" connectionStringName="SQLProfileConn" type="PetShop.Profile.PetShopProfileProvider" applicationName=".NET Pet Shop 4.0"/>
      </providers>
      <properties>
        <add name="ShoppingCart" type="PetShop.BLL.Cart" allowAnonymous="true" provider="ShoppingCartProvider"/>
      </properties>
</profile>

根據設定檔,屬性也即需要儲存的類型為PetShop.BLL.Cart,自訂使用者配置提供者為ShoppingCartProvider,用於儲存PetShop.BLL.Cart類中的相關資訊。由於ShoppingCartProvider為自訂使用者配置提供者,需要繼承自System.Web.Profile.ProfileProvider,重寫父類中的一些方法,如Initialize(),GetPropertyValues(),SetPropertyValues()等等。

啟動Web應用程式,ASP.NET會根據設定檔中的相關配置建立一個ProfileCommon類的執行個體,該類繼承自System.Web.Profile.ProfileBase類。根據ProfileCommon類的部分代碼

Code
public virtual PetShop.BLL.Cart ShoppingCart {
        get {
            return ((PetShop.BLL.Cart)(this.GetPropertyValue("ShoppingCart")));
        }
        set {
            this.SetPropertyValue("ShoppingCart", value);
        }
}

 

先調用重寫的Initialize()方法,用來設定提供者執行個體的選項與初始值。然後根據(this.GetProertyValue("ShoppingCart")),調用GetPropertyValues方法,用來擷取相關屬性類型PetShop.BLL.Cart中的有關資訊(儲存在資料庫中)後,進行強型別轉換(PetShop.BLL.Cart)(this.GetProertyValue("ShoppingCart")),然後調用Cart.Add()方法。

調用Profile.Save()方法後,程式調用ShoppingCartProvider中重寫的方法SetPropertyValue()來完成PetShop.BLL.Cart中相關資訊的儲存。

轉至:http://www.cnblogs.com/sunny0311/archive/2008/09/22/1296241.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.