2013-07-24 1 views
2

в моем решении У меня есть два проекта (Windows Service и WPF для управления сервисом) , и у меня есть файл сидя (XML), который используется службой что я спрашиваю о том:Как контролировать файл xml для (add - edit - delete) node (s)

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

у меня есть многократно искали и обнаружили, что раствор проходит через FileSystemWatcher

Слушает уведомления об изменении файловой системы и вызывает события, когда изменяется каталог или файл в каталоге.

но, как я знаю, что это узел XML (ы), который изменил

благодаря

+0

Как вы читаете конфигурации XML? Вы используете XPath или у вас есть класс настроек, который вы сериализуете/десериализуете в XML? –

+0

это простой xml-файл, и я использую Linq для xml – tito11

ответ

0

Я хотел бы сохранить копию исходного XML, а затем запустить сравнение, когда FileSystemWatcher триггеров. Посмотрите на Efficient algorithm for comparing XML nodes на предложение о сравнении узлов XML.

например наблюдател Файл

String folderLocation = System.Configuration.ConfigurationManager.AppSettings["FOLDER_LOCATION"].ToString(); 

      _watcher = new System.IO.FileSystemWatcher(); 
      _watcher.Path = folderLocation; 
      _watcher.IncludeSubdirectories = false; 
      _watcher.NotifyFilter = NotifyFilters.Size; 
      _watcher.Changed += new FileSystemEventHandler(OnFileChanged); 
      _watcher.EnableRaisingEvents = true; 

private void OnFileChanged(object sender, FileSystemEventArgs e) 
     { 
      String file = e.FullPath; 
... 
Смежные вопросы