Acceder à un fichier xml pas modifiable (dll ou autre) [Résolu]

Signaler
Messages postés
71
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
8 juin 2007
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,


Je dois exploiter un fichier XML dans mon programme, il faut que ce fichier ne soit pas modifiable par l'utilisateur.


Voilà comment j'ai procédé: avec l'utilitaire al.exe, j'ai placé mon fichier XML dans un assemblage "xml.resources.dll"


Par la suite je ne parviens pas à charger l'assemblage et à accéder au
fichier XML qui se trouve à l'intérieur à partir du code. J'ai essayé
avec la méthode assembly.load mais sans succès.

Voilà ma question: est ce que le fait de placer le fichier xml
dans un assemblage est une bonne solution ou je suis complètement à
coté?


Si cela est une bonne solution, comment accéder au fichier XML?


Merci.

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Pourquoi pas après tout.

Exemple :
Assembly asm = Assembly.LoadFile(assemblyPath);
XmlDocument doc = new XmlDocument();
StreamReader sr = new StreamReader(asm.GetManifestResourceStream(resourceName));
doc.LoadXml(sr.ReadToEnd());
sr.Close();

(l'Assembly est chargé dans le domaine de l'application courante)

/*
coq
MVP Visual C#
*/
Messages postés
71
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
8 juin 2007

Genial ça fonctionne, merci!

Par simple curiosité quand tu dis "Pourquoi pas après tout" cela veut dire que tu aurais une autre façon de faire
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Euh non, je disais juste ça comme ça.
Je ne vois pas vraiment d'inconvénient à ce genre de chose sur ce coup là.

Tu aurais peut être intérêt à regarder pour charger l'assembly dans un autre AppDomain afin de pouvoir le décharger après l'extraction des données, à toi de voir.

/*
coq
MVP Visual C#
*/