Присвоить бизнес-объект скрытой переменной - PullRequest
0 голосов
/ 26 июня 2010

Скажем, например, если у меня есть бизнес-объект -> Клиент, который имеет customerId, customerName и customerType.Я создал asp: Hidden Variable 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

}

}

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Вы можете сериализовать в и из XML, используя XmlSerializer:

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

Однако, если вы просто сохраните объект в коллекции ViewState [], он должен работать лучше:

ViewState["Customer"] = customerList;

Он делает то же самое: сохраняет сериализуемый объект на странице, скрытый от пользователя: но он не будет в удобочитаемом формате.

(правка: для десериализации просто получите значение ViewState ["Customer"], проверяя на ноль перед его использованием!)

edit 2: полезная ссылка о хранении объектов в ViewState:

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

Надеюсь, это поможет.

0 голосов
/ 26 июня 2010

Я думаю, что .net уже предоставляет некоторые классы для этого, посмотрите на этот пример

...