Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#/XML] ArgumentException lors d'une save de XML

Sujet résolu
    6 juin 2011 à 14:02:14

    Hello,

    j'ai un problème que je n'arrive pas a résoudre et pour laquelle j'aurais besoin d'aide.

    string fichier = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\Configuration.xml";
    
    public bool EcrireConfig(string Element, string Valeur)
            {
                try
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(fichier);
                    XmlElement root = xmlDoc.DocumentElement;
                    XmlNode elt = root.SelectSingleNode(Element);
                    elt.InnerText = Valeur;
                    xmlDoc.Save(fichier);
                }
                catch (FileNotFoundException)
                {
                    return false;
                }
                /*catch (ArgumentException)
                {
                    return false;
                }*/
                return true;
            }
    


    Lorsque j'appel cette methode, j'ai une exception (ArgumentException) sur le Save... "Les formats URI ne sont pas pris en charge."
    J'ai bien compris que le problème c'étais que ça n'aimait pas les adresses locales.... mais je ne comprend pas comment résoudre le problème (je souhaite que le fichier reste a la même place après édition)

    Une idée miracle?

    Merci d'avance

    Vitel
    • Partager sur Facebook
    • Partager sur Twitter
      6 juin 2011 à 14:38:48

      A priori l'erreur vient du fait que la propriété CodeBase que tu utilises renvoie un chemin de la forme file://.../tonExecutable.exe. Ce n'est pas la propriété la plus pratique dans ton cas: mieux vaut utiliser la propriété Location de ton assembly pour en récupérer le dossier d'exécution, puis le combiner avec le nom du fichier à ouvrir :)

      string assemblyDir = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
      string fichier = Path.Combine(assemblyDir, "Configuration.xml");
      

      • Partager sur Facebook
      • Partager sur Twitter
        6 juin 2011 à 15:10:15

        Pas bête !
        Tout va mieux depuis !

        Merci de l'aide rapide :)
        • Partager sur Facebook
        • Partager sur Twitter

        [C#/XML] ArgumentException lors d'une save de XML

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown