我们有一个网站应用程序,它充当表单设计者。锁定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