У меня есть проект библиотеки классов. В одном из классов мне нужен доступ к XML файлу. Как ссылаться на путь к этому файлу в классе? Файл находится в одной из папок того же проекта.
Как ссылаться на файл xml в проекте библиотеки классов
Ответ 1
Если вы укажите файл Xml, который будет скомпилирован в вашу сборку, вы можете прочитать его во время выполнения, используя отражение.
Assembly asm = Assembly.GetExecutingAssembly();
XmlDocument doc = new XmlDocument();
XmlTextReader reader = new XmlTextReader(asm.GetManifestResourceStream("MyNamespace.MyXmlFile.xml"));
doc.Load(reader);
Update
Поскольку конструктор X509Certificate2 будет принимать только путь к файлу сертификата или массив байтов, вы можете использовать настраиваемый путь к файлу сертификата вместо того, чтобы вставлять его в свою сборку.
Ответ 2
Используя ссылку, которую @Filburt предоставил:
Сначала измените BuildAction вашего XML файла на встроенный ресурс. Он будет добавлен в вашу сборку с корневым пространством имен вашей сборки и именем файла: Например, если корневое пространство имен вашего проекта является MyNamespace, ресурс может быть назван MyNamespace.MyXmlFile.xml
Assembly _assembly;
StreamReader _textStreamReader;
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.MyXmlFile.xml"));
Вы можете использовать любое количество классов, которые принимают поток в качестве параметра конструктора.