c # xml.Load () блокировка файла на диске, вызывающая ошибки

У меня есть простой класс XmlFileHelper следующим образом:

public class XmlFileHelper
{
    #region Private Members

    private XmlDocument xmlDoc = new XmlDocument();
    private string xmlFilePath;

    #endregion

    #region Constructor

    public XmlFileHelper(string xmlFilePath)
    {
        this.xmlFilePath = xmlFilePath;
        xmlDoc.Load(xmlFilePath);
    }

    #endregion

    #region Public Methods

    public XmlNode SelectSingleNode(string xPathQuery)
    {
        return xmlDoc.SelectSingleNode(xPathQuery);
    }

    public string GetAttributeValueByName(XmlNode node, string attributeName)
    {
        return node.Attributes.GetNamedItem(attributeName).Value;
    }

    #endregion

    #region Public Properties

    public string XmlFilePath
    {
        get
        {
            return xmlFilePath;
        }
    }

    #endregion
}

Проблема в том, что я получаю следующую ошибку при загрузке:

System.IO.IOException: The process cannot access the file ''C:\CvarUAT\ReportWriterSettings.xml'' **because it is being used by another process**

это происходит, когда этот класс используется двумя запущенными экземплярами компонента, работающего параллельно, и пытающимися загрузить файл XML выше, это допустимое поведение и требуется приложением.

Я только хочу прочитать на xml off disk один раз и освободить любую ссылку на файл на диске и использовать представление в памяти с этого момента.

Я бы предположил, что Load работает только для чтения, и мне не нужно было бы блокировать файл. Каков мой лучший способ достичь желаемого результата и обойти эту проблему?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос