HttpWebRequest не будет сериализовать - PullRequest
2 голосов
/ 09 декабря 2008

При попытке сериализации запроса HttpWebRequest

появляется следующая ошибка *

Введите 'System.Net.KnownHttpVerb' в Сборка 'Система, Версия = 2.0.0.0, Culture = нейтрально, PublicKeyToken = b77a5c561934e089 'is не помечен как сериализуемый.

Использование .Net Framework 2.0

Это одно из свойств, которое держит мой класс. Требуется сериализовать его.

HttpWebRequest помечен как Сериализуемый, поэтому он должен Сериализовать

Ответы [ 2 ]

3 голосов
/ 09 декабря 2008

Что ж, если один из содержащихся объектов помечен как не сериализуемый, я полагаю, что вам «не повезло» с использованием сериализатора по умолчанию.

Если возможно, я бы рекомендовал вместо этого взять параметры, используемые для создания экземпляра вашего веб-запроса, и вместо этого их сериализовать. Напишите пользовательский сериализатор / десериализатор для восстановления неработающего объекта.

РЕДАКТИРОВАТЬ: Есть довольно хорошая статья об этом здесь .

EDIT2: На самом деле, после небольшого поиска в Google, кажется, что это ваш единственный вариант, поскольку атрибут Serializable в HttpWebRequest был помечен как устаревший с .net 2.0. Подробнее см. здесь (поиск по HttpWebRequest).

0 голосов
/ 09 декабря 2008

Сериализация System.Net.HttpWebRequest была отмечена как устаревшая в .NET 2.0.

Официальные документы здесь:

http://msdn.microsoft.com/en-us/library/aa497288.aspx

С точки зрения приложения это лучший результат. Преобладающим объемом экземпляра HttpWebRequest является состояние ввода-вывода, которое, как правило, не подлежит прямой регидратации.

Как @ Andrew-Rollings предлагает вместо этого реализовать настраиваемую сериализацию для сохранения / восстановления параметров запроса, а затем заново создать экземпляр HttpWebRequest с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...