Как записать данные в XML-файл, который встроен в DLL

1

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

var doc = XDocument.Parse(Resource.EmailHistory);
 var email=doc.Root.Elements().Select(x => x.Element("Email"));
 foreach (string item in email)
 {
      textBox1.Text+= item;
 }

но сталкиваются с проблемой при записи во встроенный XML файл. Пожалуйста, помогите мне с этим. Любая помощь будет оценена по достоинству.

Xml Code

<?xml version="1.0" encoding="utf-8" ?>
<root>
   <Email>
       Hello
   </Email>
   <Email>
       There
   </Email>
</root>
  • 1
    «записать данные в этот встроенный XML-файл» - вы не можете.
  • 0
    И это имеет отношение к WCF?
Показать ещё 1 комментарий
Теги:
resourcemanager

1 ответ

2
Лучший ответ

Вы не можете записывать данные во встроенный XML файл, потому что это ресурс, встроенный в DLL (или исполняемый файл).

Вы можете заменить его, создав весь новый ресурс, а затем используя UpdateResource. Это не так просто, как кажется; вам необходимо выполнить все следующие действия (подробнее см. " Обновление ресурсов в MSDN"):

  1. Используйте LoadLibrary для загрузки исполняемого файла Hand.exe.
  2. Используйте FindResource и LoadResource для поиска и загрузки ресурса диалогового окна.
  3. Используйте LockResource для получения указателя на данные ресурса диалогового окна.
  4. Используйте BeginUpdateResource, чтобы открыть дескриптор обновления для Foot.exe.
  5. Используйте UpdateResource, чтобы скопировать ресурс диалогового окна из Hand.exe в файл Foot.exe.
  6. Используйте EndUpdateResource для завершения обновления.

Чтобы сделать это, очень много работы, чтобы обновить XML файл, следует сказать вам, что вы делаете это неправильно, а встроенный ресурс - не правильный подход. (Например, внешний файл или база данных (что позволит хранить намного больше информации и может быть отсортировано, отфильтровано и обыскано), например, будет гораздо лучшим решением).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню