c # xml.Load () blokujący plik na dysku powodujący błędy

Mam prostą klasę XmlFileHelper w następujący sposób:

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
}

Problem polega na tym, że otrzymuję następujący błąd podczas ładowania:

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

Dzieje się tak, gdy ta klasa jest przyzwyczajona do dwóch uruchomionych instancji składnika działającego równolegle, zarówno próbujących załadować powyższy plik xml, jest to zgodne z prawem zachowanie i wymagane przez aplikację.

Chcę tylko wczytać plik xml z dysku i zwolnić wszelkie odniesienia do pliku na dysku i użyć reprezentacji pamięci od tego punktu do przodu.

Zakładałbym, że Load działa w trybie tylko do odczytu i nie ma potrzeby blokowania pliku, jaki jest mój najlepszy sposób na osiągnięcie pożądanego rezultatu i obejście tego problemu?

Dzięki

questionAnswers(4)

yourAnswerToTheQuestion