2009-12-18 86 views
0

我想引发一个事件以防止对Xml文件进行任何修改。回滚XML文档中的更改

简单地举一个事件就够了吗?像

XElement doc = XElement.Load(@"d:\XMLFiles\namespace.xml"); 
doc.Changed +=new EventHandler<XObjectChangeEventArgs>(doc_Changed); 

什么是代码我需要写在doc_changed(..,...)里面回滚任何修改?

static void doc_Changed(object sender, XObjectChangeEventArgs e) 
    { 

     //what is the code needed here..? 

    } 

回答

2

而不是订阅Changed,您应该订阅Changing,让你得到通知它发生之前

防止更改的最简单方法是抛出异常...但这是处理它的一种非常严格的方式。你真的想要预防哪种情况?由于开发人员意外更改而不理解此文档是只读的?

+0

是乔恩,你完全正确。 – guru 2009-12-18 10:56:30

+0

现在你已经编写了函数式编程,对吧? – guru 2009-12-18 11:33:54

+0

不太确定你的意思......你是指真实世界功能编程书吗?如果是这样,我只能帮助一点 - 托马斯佩特里切克做了大量的工作。 – 2009-12-18 11:43:08