sunny0311

导航

读 PetShop代码(Profile篇)

用于存储与用户有关的数据,维护应用程序状态。Profile对象提供一个创建强类型和持久化方式的会话状态的方法。

以Profile.ShoppingCart.Add();

   Profile.Save();

   的执行流程为例

首先配置文件部分代码如下:

Code

根据配置文件,属性也即需要存储的类型为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

 

先调用重写的Initialize()方法,用来设置提供者实例的选项与初始值。然后根据(this.GetProertyValue("ShoppingCart")),调用GetPropertyValues方法,用来获取相关属性类型PetShop.BLL.Cart中的有关信息(存储在数据库中)后,进行强类型转换(PetShop.BLL.Cart)(this.GetProertyValue("ShoppingCart")),然后调用Cart.Add()方法。

调用Profile.Save()方法后,程序调用ShoppingCartProvider中重写的方法SetPropertyValue()来完成PetShop.BLL.Cart中相关信息的保存。

posted on 2008-09-22 22:05  航子  阅读(785)  评论(0)    收藏  举报