.NET und this "dereferenzieren"

Gast #384907
Lesenswert?
• ▲
▼
Ich habe eine Klasse Class_serialize erstellt, die ihre Instanzvariablen
aus/in eine XML-Datei serialisieren soll. Um ihre eigene Instanz zu
referenzieren, gibts ja die this-Referenz.

Dummerweise kann man von this nur lesen, aber nicht schreiben. Um also
von der angegebenen Datei einzulesen verwende ich daher folgenden
funktionierenden Code:
1
[Serializable]
2
public class Class_serialize
3
{
4
    //Variablen
5
    public string str = "Testinhalt der XML-Datei";
6

7
    //Funktionen
8
    public bool OpenProject(Class_serialize obj)
9
    {
10
        Stream myStream;
11
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
12
        openFileDialog1.Filter = "Projectfiles (*.prj)|*.prj";
13
        openFileDialog1.AddExtension = true;
14
        openFileDialog1.CheckFileExists = true;
15
        openFileDialog1.Title = "Open Projectfile";
16

17
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
18
        {
19
            try
20
            {
21
                if ((myStream = openFileDialog1.OpenFile()) != null)
22
                {
23
                    XmlSerializer ser = new
24
XmlSerializer(typeof(Class_serialize));
25
                    TextReader reader = new
26
StreamReader(openFileDialog1.FileName);
27
    /* *********** DAS HIER MEIN ICH *************/
28
                    Class_serialize ich = this;
29
                    ich=(Class_serialize)ser.Deserialize(reader);
30
    /* /********** DAS HIER MEIN ICH *************/
31
                    reader.Close();
32
                    myStream.Close();
33
                    return (true);
34
                }
35
            }
36
            catch
37
            {
38
                MessageBox.Show("Error while reading file");
39
            }
40
        }
41
        return (false);
42
    }
Ist das der einzigste Weg oder macht man das eigentlich anders==besser?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.