比方说,如果我有一个商业实体 - >客户,customerId
,customerName
和customerType
。我创建了一个asp:隐藏变量hdnCustomer来runat =“server”
如果我想将客户业务实体(在后面的代码中)的值序列化到hdnCustomer,那么我该怎么做?一旦序列化,我将如何反序列化它?
// Pseudo code
Collection<Customer> customerList = new Collection<Customer>();
customerList = BusinessAccess.GetCustomerList();
hdnCustomer = serialize and assign the value of 'customerList' to hdnCustomer;
...
...
// Later on a select index change of one of the drop down lists
在下拉列表的事件处理程序中:
{
Collection<Customer> customerList = new Collection<Customer>();
customerList = deserialize the value from hdnCustomer
int a = Convert.ToInt32(ddlDropDown.SelectedValue);
foreach(a in customerList)
{
// Do something
}
}
答案 0 :(得分:0)
我认为.net已经提供了一些课程,look at this example
答案 1 :(得分:0)
您可以使用XmlSerializer与XML串行:
但是,如果您只是将对象存储在ViewState []集合中,该对象应该更好用:
ViewState["Customer"] = customerList;
它做了同样的事情:将可序列化对象存储在页面中,对用户隐藏:但它不会是人类可读的格式。
(编辑:要反序列化,只需获取ViewState [“Customer”]的值,在使用之前检查null!)
编辑2:关于在ViewState中存储对象的有用链接:
http://www.beansoftware.com/ASP.NET-Tutorials/ViewState-In-ASP.NET.aspx
希望有所帮助。