Je suis en train de développer un add-on pour Excel en C# qui inclut un serveur RTD. Comme nous n'avons pas encore de base de données SQL, je dois utiliser un fichier XML pour stocker les données.Écrire et lire le même fichier xml avec C# (serveur RTD pour Excel)
Le fichier XML est mis à jour via une fonction C# utilisée dans Excel d'un côté. D'un autre côté, plusieurs utilisateurs doivent être en mesure de récupérer ces données en temps réel.
Lorsque j'exécute les deux fonctions (mettre à jour et lire le fichier XML), la fonction d'écriture se bloque de temps en temps avec l'erreur file being usee by another process
.
La fonction d'écriture:
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);
et fonction de lecture:
_xml.Load(topic.FileName);
XmlNode node = _xml.SelectSingleNode("//" + topic.Ticker);
topic.Value = node.InnerText;
Je ne peux pas voir comment démerder, de sorte que toute idée sera plus que bienvenue.