sopi9 Ответов: 2

Чтение / запись XML из каталога решений


Привет,

У меня есть решение, которое имеет несколько проектов. Один из проектов имеет XML-файл с предопределенными значениями. Теперь я хочу получить доступ к этим значениям из другого проекта, но с тем же решением.

Как я могу получить к нему доступ?

Что я уже пробовал:

XDocument proxyXML = XDocument.Load("~//project1.Common.Model//valueSettings.xml");

Richard MacCutchan

Просто измените путь, чтобы указать правильное расположение файла.

2 Ответов

Рейтинг:
2

RickZeeland

Чтобы получить путь, где находится exe-файл:

string strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
strPath = strPath.Replace(@"file:\\", string.empty);
Затем замените название проекта на @"project1.Common.Model"


Рейтинг:
0

RickZeeland

Поместите xml-файл в основную папку решения и ссылайтесь на него из своих проектов, щелкнув правой кнопкой мыши и выбрав пункт "добавить в проект", затем щелкните правой кнопкой мыши файл и в наборе свойств "Копировать в выходной каталог- чтобы всегда.
Если вы хотите избежать ненужных копий, вы можете выбрать "Добавить как ссылку".


sopi9

В одном решении есть несколько проектов. Этот XML находится в одном из проектов(скажем, имя проекта является общим), но я хочу получить доступ к нему через все проекты.
Я добавил ссылку на этот общий проект во всех других проектах. Кроме того, я установил "копировать в выходной каталог" на всегда. Теперь этот XML будет находиться в корзине общего проекта. Как я могу получить доступ к пути bin этого общего проекта в других проектах.
Я могу получить доступ к пути bin текущей папки, но не уверен в доступе к пути bin другого проекта

RickZeeland

Если ваш" общий " проект содержит файл. xml, включенный в "копировать в выходной каталог", и вы ссылаетесь на" общий "проект из других ваших проектов, файл .xml также должен быть скопирован в другие папки bin со всеми файлами" общего " проекта.

sopi9

Невозможно скопировать XML в другие папки bin. Этот xml-файл является центральным хранилищем общих значений (доступных/используемых всеми другими проектами).
Таким образом, эти общие значения, доступные для всех проектов, будут динамически изменяться и храниться в этом XML-файле.
В соответствии с вашим решением, хранящим копию xml во всех папках bin, эти xml-файлы могут не иметь последних обновленных данных.
Каждый раз, когда XML в общем проекте обновляется, мне приходилось копировать этот обновленный файл во все папки bin a runtime, что будет накладным расходом.