在视图状态中保存自定义的对象
http://www.webjx.com 更新日期:2005-02-27 09:34 出处:网页教学网 作者:
|
背景: B/S三层结构系统,在表现层实例化业务层的对象,并使用此对象执行业务规则,访问数据层。
问题: 在表现实例化一个业务对象,在操作此对象时发现它不能被加入到ViewState中,提示错误:
类型“AmmeterChg”必须标记为 Serializable 或者具有 ReferenceConverter 以外的TypeConverter,才能被放置在视图状态中。
解决方案:
通过将类实现 ISerialization 接口,使它可被序列化
实现接口部分的代码如下:
|
#region ISerializable 成员
protected ammeterChg(SerializationInfo info,StreamingContext context) { this.customer_id = info.GetString("customer_id"); this.am_id_old = info.GetString("am_id_old"); this.abc =info.GetString("abc"); this.ycbds_old = info.GetDouble("ycbds_old"); }
public void GetObjectData(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) {
info.AddValue("customer_id",customer_id); info.AddValue("am_id_old",am_id_old); info.AddValue("abc",abc); info.AddValue("ycbds_old",ycbds_old); } #endregion |
=========================================================== customer_id,am_id_old,ycbds_old 是该类的属性的 private 变量!
|
|
您的评论
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为