CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

序列化对象的使用问题!

楼主xiaomaju(天堂鸟)2004-05-01 23:11:46 在 .NET技术 / ASP.NET 提问

 
  问题是关于对象传递的。  
  TestClass是一个可序列化的对象  
  关键是在按钮响应事件中是否能够对session进行操作?!  
  请指教,谢谢各位!  
   
  using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   mytest  
  {  
                  ///   <summary>  
                  ///   test   的摘要说明。  
                  ///   </summary>  
                  public   class   test   :   System.Web.UI.Page  
                  {  
                                  protected   System.Web.UI.WebControls.Button   Button1;  
                                  protected   System.Web.UI.WebControls.Label   Label1;  
                                  public   TestClass   testClass;  
   
                                  private   void   Page_Load(object   sender,   System.EventArgs   e)  
                                  {  
                                                  //   在此处放置用户代码以初始化页面  
                                                  if(!Page.IsPostBack)  
                                                  {  
                                                                  testClass=new   TestClass();  
                                                                  this.Label1.Text=testClass.getStr();  
                                                  }  
                                                  else  
                                                  {  
                                                                  testClass=(TestClass)Session["TestClass"];  
                                                                  this.Label1.Text=testClass.getStr();  
                                                  }  
                                  }  
   
                                  #region   Web   窗体设计器生成的代码  
                                  override   protected   void   OnInit(EventArgs   e)  
                                  {  
                                                  //  
                                                  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
                                                  //  
                                                  InitializeComponent();  
                                                  base.OnInit(e);  
                                  }  
   
                                  ///   <summary>  
                                  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
                                  ///   此方法的内容。  
                                  ///   </summary>  
                                  private   void   InitializeComponent()  
                                  {  
                                                  this.Button1.Click   +=   new   System.EventHandler(this.Butto  
  1_Click);  
                                                  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
                                  }  
                                  #endregion  
   
                                  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
                                  {  
                                                  testClass.changeIt();  
                                                  Session.Add("TestClass",testClass);  
   
                                  }  
                  }  
  }  
   
   
   
   
   
  ////////////////////////////TestClass.cs////////////////////  
   
  using   System;  
   
  namespace   mytest  
  {  
                  ///   <summary>  
                  ///   TestClass   的摘要说明。  
                  ///   </summary>  
                  ///  
                  [Serializable]  
                  public   class   TestClass  
                  {  
                                  String   str="init   String";  
                                  public   TestClass()  
                                  {  
                                                  //  
                                                  //   TODO:   在此处添加构造函数逻辑  
                                                  //  
                                  }  
                                  public   void   changeIt()  
                                  {  
                                                  str="changed   String";  
                                  }  
                                  public   String   getStr()  
                                  {  
                                                  return   str;  
                                  }  
                  }  
  }  
   
   
  问题点数:80、回复次数:6Top

1 楼Sunmast(速马@Redmond, WA)回复于 2004-05-02 00:03:34 得分 10

把对象放到session里面不需要可序列化的Top

2 楼saucer(思归)回复于 2004-05-02 00:09:31 得分 50

yes,   but   you   forget   to   add   it   to   the   session   variable  
   
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
                                  {  
                                                  //   在此处放置用户代码以初始化页面  
                                                  if(!Page.IsPostBack)  
                                                  {  
                                                                  testClass=new   TestClass();  
                                                                  this.Label1.Text=testClass.getStr();  
          Session["TestClass"]   =     testClass;///<=======here  
                                                  }  
                                                  else  
                                                  {  
                                                                  testClass=(TestClass)Session["TestClass"];  
                                                                  this.Label1.Text=testClass.getStr();  
                                                  }  
                                  }Top

3 楼erictang2003()回复于 2004-05-02 00:16:59 得分 0

代码写的好乱啊!  
  仔细学下:http://chs.gotdotnet.com/quickstart/aspplus/  
  Top

4 楼sniper81(菜鸟也是人)回复于 2004-05-02 01:54:21 得分 10

放到session的对象不需要序列化吧Top

5 楼xiaomaju(天堂鸟)回复于 2004-05-02 08:53:10 得分 0

但是,各位大虾,我想在Button1_Click事件中对dataClass类的一些属性进行修改,用修改  
  过的类替换掉原有的session中的dataClass!  
  我应该如何去做呢?Top

6 楼babyjavalover(勇敢)回复于 2004-05-02 11:55:42 得分 10

放在Session里的变量在本机进程里可以不[Serializable],在WebFarm,WebGarden环境是要[Serializable]  
   
  Top

相关问题

  • 序列化对象
  • 对象序列化--存储数据库的方法 序列化后 不能使用
  • .Net序列化对象能否序列化一组对象
  • 请问C#中字体对象如何使用序列化保存,解决就解贴,
  • 怎样实现对象的序列化
  • 请教对象序列化问题
  • 关于对象序列化的问题
  • 序列化对象遇到的问题...
  • 关于对象的序列化问题
  • 关于对象序列化的问题

关键词

  • 序列化
  • 代码
  • testclass
  • 对象
  • eventargs e
  • getstr
  • ui
  • webcontrols
  • label
  • load

得分解答快速导航

  • 帖主:xiaomaju
  • Sunmast
  • saucer
  • sniper81
  • babyjavalover

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo