剛好今天朋友問到,就上網找一下之前回在MSDN FORUM的作法,之前在FORUM的討論連結 http://social.msdn.microsoft.com/forums/zh-TW/236/thread/8aa0ebfb-3bbf-40c4-a318-3f4473e439f8/
//製造出的網頁 public class WebForm1 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here StringBuilder sb = new StringBuilder(); string objdata=null; Person p = new Person(); p.FirstName = "Jon"; p.LastName = "Flanders"; p.Age = 35; BinaryFormatter bf = new BinaryFormatter(); MemoryStream m = new MemoryStream(); bf.Serialize(m,p); byte[] data = m.ToArray(); string str = System.Text.Encoding.Default.GetString(data); objdata = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(str)); sb.AppendFormat("WebForm2.aspx?obj={0}",Server.UrlEncode(objdata)); Response.Redirect(sb.ToString()); } }
//接收網頁public class WebForm2 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { BinaryFormatter bf = new BinaryFormatter(); BinaryFormatter bf2 = new BinaryFormatter(); string objdata = Server.UrlDecode(Request["obj"].ToString()); objdata = System.Text.Encoding.Default.GetString(Convert.FromBase64String(objdata)); MemoryStream m = new MemoryStream(System.Text.Encoding.Default.GetBytes(objdata)); m.Seek(0,Begin); Person p = (Person)bf.Deserialize(m); Response.Output.Write("Person = {0} {1} ",p.FirstName,p.LastName); } }
可參考 http://social.msdn.microsoft.com/forums/zh-TW/236/thread/8aa0ebfb-3bbf-40c4-a318-3f4473e439f8/小朱與璉大有詳細的補充及相關延伸資料。
剛朋友傳來之前ASP.NET 魔法學院 分享的更好的 物件序列化函式庫 ,這方面寫的更詳細。