Frage

Ich erhalte die folgende Fehlermeldung, wenn ich versuche, eine Serialize HttpWebRequest

  

Typ 'System.Net.KnownHttpVerb' in   Assembly ‚System, Version = 2.0.0.0,   Culture = neutral,   PublicKeyToken = b77a5c561934e089' ist   nicht als serialisierbar markiert.

Mit .Net Framework 2.0

Dies ist eine der Eigenschaften, die meine Klasse hält. Es ist eine Anforderung es serialisiert werden.

HttpWebRequest als Serializable markiert, so dass es serialisieren soll

War es hilfreich?

Lösung

Nun, wenn eine der enthaltenen Objekte als nicht serialisierbar markiert ist, ich glaube, Sie „kein Glück“ mit den Standard-Serializer sind.

Wenn möglich, würde ich stattdessen empfehlen, die Parameter verwendet, nehmen Sie Ihre Web-Anfrage zu instantiieren und diese anstelle der Serialisierung. Schreiben Sie eine benutzerdefinierte Serializer / Deserializer, um das unkooperative Objekt wiederherzustellen.

EDIT: Es ist ein ziemlich guter Artikel über die hier .

EDIT2: In der Tat, nach einem wenig googeln scheint es, dass dies die einzige Möglichkeit ist, da das Attribut Serializable auf HttpWebRequest ist obsolet wie von .net 2.0 markiert. Siehe hier Details (Suche nach HttpWebRequest).

Andere Tipps

System.Net.HttpWebRequest Serialisierung als obselete in .NET 2.0 markiert wurde.

Offizielle Dokumente hier:

  

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

Von einer App Perspektive ist dies das beste Ergebnis. Der überwiegende Großteil einer HttpWebRequest Instanz IO Zustand, der normalerweise nicht direkt rehydratisierbaren ist.

Wie @ Andrew-Rollings schlägt stattdessen eine benutzerdefinierte serialize implementieren Ihre Anfrageparameter speichern / wiederherstellen, dann erstellen Sie die HttpWebRequest-Instanz von Grund auf neu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top