Question

Je reçois le message d'erreur suivant lorsque je tente de sérialiser une requête HttpWebRequest

  

Tapez 'System.Net.KnownHttpVerb' dans   Système d'assemblage, version = 2.0.0.0,   Culture = neutre,   PublicKeyToken = b77a5c561934e089 'est   non marqué comme sérialisable.

Utilisation de .Net Framework 2.0

Il s’agit d’une des propriétés de ma classe. Il est obligatoire de le sérialiser.

HttpWebRequest est marqué en tant que Serializable afin qu'il soit supposé Serialize

Était-ce utile?

La solution

Eh bien, si l'un des objets contenus est marqué comme non sérialisable, je pense que vous êtes & "pas de chance &"; en utilisant le sérialiseur par défaut.

Si possible, je vous recommanderais de prendre les paramètres utilisés pour instancier votre requête Web et de les sérialiser à la place. Ecrivez un sérialiseur / désérialiseur personnalisé pour reconstituer l'objet non coopératif.

EDIT: il contient un assez bon article ici .

EDIT2: En fait, après quelques recherches sur Google, il semble que ce soit votre seule option, car l'attribut Serializable sur HttpWebRequest a été marqué comme obsolète à partir de .net 2.0. Voir ici pour plus de détails (recherchez HttpWebRequest).

Autres conseils

La sérialisation System.Net.HttpWebRequest a été marquée comme obsolète dans .NET 2.0.

Documents officiels ici:

  

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

Du point de vue de l'application, c'est le meilleur résultat. La majeure partie d'une instance HttpWebRequest est un état IO qui n'est généralement pas directement réhydratable.

Comme @ Andrew-Rollings suggère d'implémenter une sérialisation personnalisée pour stocker / restaurer vos paramètres de requête, puis recréez l'instance HttpWebRequest à partir de zéro.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top