我們有一個網站應用程序,它充當表單設計者。鎖定Web應用程序中的XML文件
表單數據存儲在XML文件中。每個表單都有它自己的xml文件。
當我編輯表單時,我基本上重新創建了XML文件。
public void Save(Guid form_Id, IEnumerable<FormData> formData)
{
XDocument doc = new XDocument();
XElement formsDataElement = new XElement("FormsData");
doc.Add(formsDataElement);
foreach (FormData data in formData)
{
formsDataElement.Add(new XElement("FormData",
new XAttribute("Id", data.Id)
new XAttribute("Name", data.Name)
// other attributes
));
}
doc.Save(formXMLFilePath);
}
這很好,但我想確保兩個用戶不會同時更新XML文件。我想以某種方式鎖定它。
我怎樣才能單獨鎖定每個文件的保存過程?
我可以像下面那樣鎖定Save函數,但是這會鎖定所有用戶,即使它們保存了不同的XML文件。
private static readonly object _lock = new object();
public void Save(Guid form_Id, IEnumerable<FormData> formData)
{
lock(_lock)
{
XDocument doc = new XDocument();
foreach (FormData data in formData)
{
// Code
}
doc.Save(formXMLFilePath);
}
}
你說「文件」。您是否將XML文檔存儲到Windows文件系統? –
是的,我將xml文件保存在硬盤上。 – Catalin