在我的解决方案中,我有两个项目(Windows 服务和 WPF 来管理服务),我有一个服务使用的坐文件(XML)我问的是:
我想知道用户何时在不重新启动服务的情况下对 XML 文件进行任何更改并知道已更改的 xml 节点是什么
查了很多,发现解决办法是通过FileSystemWatcher
侦听文件系统更改通知并在目录或目录中的文件更改时引发事件。
但我怎么知道改变的 xml 节点是什么
谢谢
在我的解决方案中,我有两个项目(Windows 服务和 WPF 来管理服务),我有一个服务使用的坐文件(XML)我问的是:
我想知道用户何时在不重新启动服务的情况下对 XML 文件进行任何更改并知道已更改的 xml 节点是什么
查了很多,发现解决办法是通过FileSystemWatcher
侦听文件系统更改通知并在目录或目录中的文件更改时引发事件。
但我怎么知道改变的 xml 节点是什么
谢谢
我会保留原始 XML 的副本,然后在 FileSystemWatcher 触发时运行比较。查看Efficient algorithm for comparison 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;
...