Software developer can store custom objects in a view state just as easily as regular types. However, to store an item in a view state, ASP.NET must be able to convert it into a stream of bytes. This process is called serialization. If developer’s objects aren’t serializable, he will receive an error message when he attempts to place them in a view state.
To make his objects serializable, the software developer need to add [Serializable] attribute before his class declaration:
[Serializable]
public class BankCard
{
public string CardNumber;
public string CardType;
public DateTime ExpDate;
public BankCard(string cardNumber, string cardType, DateTime expDate)
{
CardNumber = cardNumber;
CardType = cardType;
ExpDate = expDate;
}
}
Because the BankCard class is marked as serializable, it can be stored in view state:
// Store card in a view state
BankCard bc = new BankCard(“XXXX-XXXX-XXXX-XXXX-XXXX”,”Visa”,”03-2014″);
ViewState[“CurrentBankCard”] = bc;
Software developer will need to cast his data when he retrieves it from view state:
//Restore bank card from view state
BankCard bc;
bc = (BankCard)ViewTstate[“CurrentBankCard”];