使用C#(excel的RTD服务器)写入和读取相同的xml文件

我正在为C#开发一个Excel附加组件,其中包括一个RTD服务器。因为我们还没有SQL数据库,所以我必须使用XML文件来存储数据。 XML文件通过Excel中一侧使用的C#函数进行更新。另一方面,多个用户必须能够实时检索此数据。 当我运行这两个函数(更新并读取XML文件)时,write函数会不时崩溃并出现错误
file being usee by another process
。 写功能:
string _dataPath = Path.Combine(xllDir, "Test.xml");

        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(_dataPath);

        XmlNode node = xmlDoc.SelectSingleNode(Data_Type.ToUpper() + "/" + Ticker.ToUpper() + "/" + Data.ToUpper() + "/VALUE");

        node.InnerXml = Convert.ToString(Value);

        XmlNode node_update = xmlDoc.SelectSingleNode(Data_Type.ToUpper() + "/" + Ticker.ToUpper() + "/" + Data.ToUpper() + "/LAST_UPDATE");
        node_update.InnerXml = Convert.ToString((DateTime.Now).TimeOfDay);

        xmlDoc.Save(_dataPath);
和读取功能:
 _xml.Load(topic.FileName);
        XmlNode node = _xml.SelectSingleNode("//" + topic.Ticker);
        topic.Value = node.InnerText;
我看不出如何解决这个问题,所以任何想法都会受到欢迎。     
已邀请:
我刚刚找到一个简单的答案:
FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
         _xml.Load(fs);
         fs.Close();
         XmlNode node = _xml.SelectSingleNode("//" + Ticker);
         return node.InnerText;
通过这种方式,对于读取和写入功能,任何事情都不会崩溃。     
据我所知,你不能。定义一个映射xml文件的类(例如
public class Ticker
)。在更新xml文件时实例化该类的对象:
node_update.InnerXml = Convert.ToString((DateTime.Now).TimeOfDay);
var ticker = new Ticker();
ticker.tickerValue = node_update.InnerText;
并通过该对象访问新数据:
topic.Value = this.ticker.tickerValue;  
注意:您可以为ticker类使用观察者模式,并在更新xml文件时更新它。     

要回复问题请先登录注册