Entwickler-Ecke

WinForms - WebBrowser Objekt serialisieren


Xardas008 - Fr 15.04.11 18:48
Titel: WebBrowser Objekt serialisieren
Hallo ihr,

ich habe ein kleines Programm mit einem WebBrowser Objekt, und dieses möchte ich, wenn das Programm geschlossen wird serialisieren um bei einem Neustart des Programms den alten Zustand wieder zu laden.

Dazu habe ich extra die WebBrowser-Klasse abgeleitet und das Attribut [Serializable()] hinzugefügt, aber dennoch fliege ich beim Serialisieren ab, wo er mir sagt das System.Windows.Forms.WebBrowser nicht serialisierbar sei.

Wie kann ich meine Klasse dennoch serialisierbar machen?

Hier noch der Code von meiner Klasse Browser:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
    [Serializable()]
    class Browser : WebBrowser
    {
        static int GlobalID = 0;

        int ID;
        public Browser()
            : base()
        {
            ID = GlobalID++;
        }
    }


Th69 - Fr 15.04.11 19:42

Hallo,

was genau hast du denn vor?
Alle WinForms Controls lassen sich NICHT serialisieren!

Du kannst nur Daten abspeichern, keine ganzen Steuerelemente!
Beim WebBrowser-Element kannst du also entweder den Pfad zur aktuellen Seite oder aber die Seite selbst (als HTML) abspeichern.


Xardas008 - Fr 15.04.11 20:03

Ich hatte vor, mit meinem Programm die Open Books von Galileo Press zu lesen, ohne in meinem Browser immer nen Bookmark setzen zu müssen. Ok einfach nur die Webseite auf der ich grade bin zu speichern würde im Prinzip auch langen, müsste ich halt immer so lesen, das ich immer oben anfangen kann ohne mir die genaue Position im Text merken zu müssen (das wäre mit Serialisierung kein Problem gewesen weil er ja dann genau an der Stelle wieder eingesprungen wäre)