您的位置:首页 > 其它

序列化业务对象

2006-04-13 15:14 344 查看
呼~终于把分页控件做好了。满心欢喜打算把它用在以前的一个系统中。
该系统是基于Castle的ar开发的。
由于我的分页控件需要将表现控件的DataSource往ViewState里存,而我写的domain对象竟然不能序列化,提示错误如下:
类型“***”必须标记为 Serializable 或者具有 ReferenceConverter 以外的TypeConverter,才能被放置在视图状态中。
到网上找了些文章看了一下,自己再试验改进之后,在业务对象中作如下处理就成功解决问题了:

1.加上namespace:
using System.Runtime.Serialization;
2.在类名前加上[Serializable]
3.让类继承ISerializable
4.给类加上构造函数:
protected Users(SerializationInfo info,StreamingContext context)
{
Id = info.GetString("Id");
Name = info.GetString("Name");
CreateDate = info.GetDateTime("CreateDate");
}
5.实现ISerializable:
public void GetObjectData(System.Runtime.Serialization.SerializationInfo info,

System.Runtime.Serialization.StreamingContext context)
{

info.AddValue("Id",Id);
info.AddValue("Name",Name);
info.AddValue("CreateDate",CreateDate);
}
这些Id,Name,CreateDate是什么?是Users类的属性啊。
OK,成功解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: