|
背景:
BS三层结构系统,在表现层实例化业务层的对象,并使用此对象执行业务规则,访问数据层。
问题:
在表现实例化一个业务对象,在操作此对象时发现它不能被加入到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 变量!
作者:MasterLRC
|