0

例如,如果我有一个业务实体 -> 客户,它有customerId,customerNamecustomerType. 我创建了一个 asp:Hidden Variable hdnCustomer to 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

}

}
4

2 回答 2

0

我认为 .net 已经提供了一些类来做到这一点,看看这个例子

于 2010-06-26T09:23:59.480 回答
0

您可以使用 XmlSerializer 与 XML 进行序列化:

http://support.microsoft.com/kb/815813

但是,如果您只是将对象存储在 ViewState[] 集合中应该会更好:

ViewState["Customer"] = customerList;

它做同样的事情:将可序列化对象存储在页面中,对用户隐藏:但它不会采用人类可读的格式。

(编辑:要反序列化,只需获取 ViewState["Customer"] 的值,在使用前检查是否为空!)

编辑 2:关于在 ViewState 中存储对象的有用链接:

http://www.beansoftware.com/ASP.NET-Tutorials/ViewState-In-ASP.NET.aspx

希望有帮助。

于 2010-06-26T09:25:53.410 回答