У меня есть класс, помеченный как сериализуемый, и у меня нет проблем с сохранением его в сеансе, но когда я пытаюсь сохранить его в ViewState, я получаю:
Sys.WebForms.PageRequestManagerServerErrorException: ошибка сериализации значения
Причина в том, что сериализация состояния представления выполняется классом LosFormatter, а сериализация сеанса - классом BinaryFormatter. Они немного отличаются друг от друга, и одно из этих тонких различий, вероятно, вызывает вашу проблему.
LosFormatter
BinaryFormatter
Взгляните на эту статью и документацию для LosFormatter, чтобы узнать, сможете ли вы найти некоторые подсказки о том, что вызывает вашу проблему.
Ну, это также зависит от того, какую сессию вы используете. Если это in-proc, то сериализация вообще не происходит. Ваши объекты сохраняются в памяти.