[Serializable]
public class mbmembers
{
public mbmembers()
{
}
#region "Private Variables"
private string _M_UserName; // 帐号
private string _M_RealName; // 真实姓名
private string _M_IDCard; // 证件号码
private string _M_Email; // 电子邮件信箱
private string _M_Mobile; // 手机号码
#endregion
#region "Public Variables"
/// <summary>
/// 帐号
/// </summary>
public string M_UserName
{
set { this._M_UserName = value; }
get { return this._M_UserName; }
}
/// <summary>
/// 真实姓名
/// </summary>
public string M_RealName
{
set { this._M_RealName = value; }
get { return this._M_RealName; }
}
/// <summary>
/// 证件号码
/// </summary>
public string M_IDCard
{
set { this._M_IDCard = value; }
get { return this._M_IDCard; }
}
/// <summary>
/// 电子邮件信箱
/// </summary>
public string M_Email
{
set { this._M_Email = value; }
get { return this._M_Email; }
}
/// <summary>
/// 手机号码
/// </summary>
public string M_Mobile
{
set { this._M_Mobile = value; }
get { return this._M_Mobile; }
}
#endregion
}
接下来提供序列化和反序列化的方法:
/// <summary>
/// 对类mbmembers进行二进制序列化成一个字符串
/// </summary>
/// <returns>序列化代码</returns>
public string BinarySerialize(mbmembers model)
{
BinaryFormatter ser = new BinaryFormatter();
MemoryStream mStream = new MemoryStream();
ser.Serialize(mStream, model);
byte[] buf = mStream.ToArray();
mStream.Close();
return System.Text.Encoding.Default.GetString(buf);
}
/// <summary>
/// 将从Cookie中取出的字符串反序列化成一个mbmembers类
/// </summary>
/// <param name="binary"></param>
/// <returns></returns>
public mbmembers DeSerialize(string strLoginUserModel)
{
byte[] binary = System.Text.Encoding.Default.GetBytes(strLoginUserModel);
BinaryFormatter ser = new BinaryFormatter();
MemoryStream mStream = new MemoryStream(binary);
mbmembers o = (mbmembers)ser.Deserialize(mStream);
mStream.Close();
return o;
}
将用户个人信息序列化之后 写入COOKIES:
mbmembers bs = new mbmembers();
Response.Cookies["userinfo"].Value = BinarySerialize(bs); //序列化
Response.Cookies["userinfo"].Expires = DateTime.MinValue;
string str= Request.Cookies["userinfo"].Value; //反序列化
mbmembers mb = DeSerialize(str);
以上是所有源代码,可能比较难看懂,首先你应该明白系列化的目的就不难理解他了。系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算。比如你的客户端要调用服务器上的一个方法获得一个产品对象,比如方法为:public Product findProduct(int product_id);
注意该方法返回一个Product对象,如果没有系列化技术,客户端就收不到返回的对象Product。而序列化的实现就是把对象变成一个可在网络上传输的字节流。
不过此处,如果您不想序列化,而是直接将对象保存在COOKIES里面也是可以的,这就需要循环遍历对象里面的信息,将里面的信息拼接成字符串,然后存储在COOKIES中。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛