XamlParseException wurde nicht behandelt



  • Hallo,

    ich versuche gerade eine config datei zu erstellen. Jedoch sobald ich überprüfe ob die Datei schon existiert kriege ich folgende Meldung:

    Durch den Aufruf des Konstruktors für Typ "testTool.MainWindow", der den angegebenen Bindungseinschränkungen entspricht, wurde eine Ausnahme ausgelöst.

    private string _path = "";
            public string Path
            {
                get
                {
                    return _path;
                }
                set
                {
                    if (!File.Exists(value))
                        File.WriteAllText(value, "", Encoding.Unicode);
                    _path = value;
                }
            }
            public IniFile(string INIPath)
            {
                Path = INIPath;
            }
    

    Gruß.



  • Prüfe auch den Grund der Exception mit einem try-catch-Block.

    try
    {
        ...
    }
    catch (Exception exp)
    {
        MessageBox.Show(exp.ToString());
        return;
    }
    

    Dann sehen wir weiter oder die Frage hat sich erübrigt,





  • Hast du denn den Pfad überprüft, ob der bei dir existiert? Wenn das Verzeichnis nicht existiert, wird es nicht von der Methode angelegt, sondern liefert eben besagte Exception.
    Um das Verzeichnis anlegen zu lassen, kannst du vorher

    Directory.CreateDirectory(Path.GetDirectoryName(value))
    

    aufrufen.



  • Also würdest du in unserem Team arbeiten, dann würdest du es jetzt nicht mehr tun. Code gehört in den Konstruktor oder sonst wo hin und nicht in den Setter!!!



  • @oh-ihr-götter

    Dem wiederspreche ich hiermit strikt. Der Setter ist quasi eine Methode, die aufgerufen wird um einen Wert zu setzen. Für spezielle Behandlung, zum Beispiel die Prüfung ob die Datei existiert deren Pfad übergeben wurde, kann der Setter sehr wohl verwendet werden.

    Das Anlegen des Files allerdings hätte ich in eine eigene Methode ausgelagert.


Anmelden zum Antworten