2010-02-19 3 views
3

J'ai un fichier XML dans une application WCF qui décrit les dépendances. Il est chargé lorsque le constructeur de la façade de service s'exécute et fonctionne très bien lorsque vous testez l'application seule. La façon dont notre application de test Web séparée est configurée est un point de terminaison dans un projet (mvc) différent - Les chemins relatifs sont donc différents du fichier xml que nous devons charger. La question est de savoir quelle serait la meilleure façon de charger ce fichier à partir des deux projets (de sorte que lorsque vous exécutez le premier projet seul, il charge le fichier, mais quand il est chargé dans le second projet, il peut toujours trouver le fichier xml) ?Emplacement du fichier C# Connundrum

Répondre

0

J'ai essayé la "Copie vers la sortie" sans succès - pour une raison quelconque, mon chemin racine n'était pas le chemin de sortie (ce que je pensais) ... Donc, pour abstraire les maux de tête des autres développeurs projet que j'ai fait ceci:

var _assembly = System.Reflection.Assembly.GetExecutingAssembly(); 
XDocument xdoc = XDocument.Load(new StreamReader(_assembly.GetManifestResourceStream("TheNamespace.Api.TheFile.xml"))); 

Qui bien sûr exige que le fichier soit une ressource incorporée.

1

Vous pouvez le copier dans le répertoire de sortie. Vous pouvez le faire à partir de Visual Studio en cliquant avec le bouton droit sur le fichier, en choisissant les propriétés et en remplaçant "Copier dans le répertoire de sortie" par "Toujours copier".

Lors de l'exécution, vous pourrez trouver le fichier dans le répertoire en cours dans les deux projets.

0

Essayez Server.MapPath

exemple:

Server.MapPath (@ "~ \ App_Data \ menudata.xml")

alors vous pouvez placer votre fichier dans un emplacement par rapport au répertoire racine votre site web/webservice.

Questions connexes