2010-06-02 15 views

Répondre

4

Si vous voulez compiler le fichier à l'assemblée, vous pouvez effectuer les opérations suivantes:

Accédez aux propriétés du fichier nouvellement ajouté customConfig.xml et définir le « Build Action » à 'ressource incorporée'. Le morceau de code suivant vous permet ensuite de créer un TextReader. Le TextRead peut alors être utilisé pour lire le fichier à un XDocument:

Assembly assembly = Assembly.GetExecutingAssembly(); 
TextReader textReader = new StreamReader(assembly.GetManifestResourceStream(String.Format("{0}.{1}", "NameSpace.Of.File", "customConfig.xml"))); 
XDocument doc = XDocument.Load(textReader); 

foreach (XElement element in doc.Root.Nodes()) 
{ 
    // do stuff 
} 

Si vous voulez avoir le fichier XML en plus de votre assemblage (non compilé dans l'ensemble), vous pouvez définir le « Build action » pour 'Aucun' et le 'Copier dans le répertoire de sortie' à 'Toujours copier'. Le chemin pourrait être récupéré de la manière suivante. Je n'ai pas testé.

String strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase); 

XDocument doc = XDocument.Load(strPath); 

foreach (XElement element in doc.Root.Nodes()) 
{ 
    // do stuff 
} 

Espérons que cela aide! Florian

+0

@vikp: J'ai remarqué que vous définissez les balises web-config et app-config. Je ne suis pas sûr de ce que vous voulez réaliser. Peut-être que mes solutions proposées ne correspondent pas à votre cas d'utilisation. – Florian

+0

Cela prend tout son sens, merci beaucoup! –