2011-04-11 16 views
2

我有一个程序可以从XML文件进行自我配置,但每当配置更改时,我都必须重新读取XML文件并从头开始重新构建程序的状态。操纵XElement对象而不是XML文本的编辑器控件

但是,我也可以编写它来简单地订阅每个XElement.Changed事件,因此可以在运行时更改配置,而不会强制我抛弃状态并重新创建它。

是否有一个XML编辑器控件(对于WPF或Mono,最好是)操纵XElement的实例,而不是将文档视为一个大字符串?

回答

0

你的逻辑中缺少一些东西。

  • 如果整个配置文件很重要?如果是这样 - 你的解决方案是正确的 - 你应该重新加载整个XML文件
  • 如果有什么(三方应用?)改变了XML - 你怎么知道它?可能是同一个程序可以踢一些事件并注意到变化?

对于使用XML:最好的方法是使用XPath并提取XmlElement,甚至从整个XML中提取元素集合。我不认为有一种方法可以知道XML的一部分是否发生了变化,或者得到了关于它的事件。要知道发生了什么变化,你应该检查它与原始文件副本 - 但我明白,另一个应用程序改变它,所以......