[Serializable]
public class mbmembers
{
public mbmembers()
{
}
#region "Private Variables"
private string _M_UserName; // 帳號(hào)
private string _M_RealName; // 真實(shí)姓名
private string _M_IDCard; // 證件號(hào)碼
private string _M_Email; // 電子郵件信箱
private string _M_Mobile; // 手機(jī)號(hào)碼
#endregion
#region "Public Variables"
/// <summary>
/// 帳號(hào)
/// </summary>
public string M_UserName
{
set { this._M_UserName = value; }
get { return this._M_UserName; }
}
/// <summary>
/// 真實(shí)姓名
/// </summary>
public string M_RealName
{
set { this._M_RealName = value; }
get { return this._M_RealName; }
}
/// <summary>
/// 證件號(hào)碼
/// </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>
/// 手機(jī)號(hào)碼
/// </summary>
public string M_Mobile
{
set { this._M_Mobile = value; }
get { return this._M_Mobile; }
}
#endregion
}
接下來提供序列化和反序列化的方法:
/// <summary>
/// 對(duì)類mbmembers進(jìn)行二進(jìn)制序列化成一個(gè)字符串
/// </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中取出的字符串反序列化成一個(gè)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;
}
將用戶個(gè)人信息序列化之后 寫入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);
以上是所有源代碼,可能比較難看懂,首先你應(yīng)該明白系列化的目的就不難理解他了。系列化的目的就是能在網(wǎng)絡(luò)上傳輸對(duì)象,否則就無法實(shí)現(xiàn)面向?qū)ο蟮姆植际接?jì)算。比如你的客戶端要調(diào)用服務(wù)器上的一個(gè)方法獲得一個(gè)產(chǎn)品對(duì)象,比如方法為:public Product findProduct(int product_id);
注意該方法返回一個(gè)Product對(duì)象,如果沒有系列化技術(shù),客戶端就收不到返回的對(duì)象Product。而序列化的實(shí)現(xiàn)就是把對(duì)象變成一個(gè)可在網(wǎng)絡(luò)上傳輸?shù)淖止?jié)流。
不過此處,如果您不想序列化,而是直接將對(duì)象保存在COOKIES里面也是可以的,這就需要循環(huán)遍歷對(duì)象里面的信息,將里面的信息拼接成字符串,然后存儲(chǔ)在COOKIES中。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇