c#, xml.Load() de verrouillage de fichier sur le disque à l'origine des erreurs

J'ai une classe simple XmlFileHelper comme suit:

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
}

Le problème est que je reçois le message d'erreur suivant sur la Charge:

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

cela se produit lorsque cette classe est utilisée par les deux instances en cours d'exécution d'un composant en parallèle à la fois d'essayer de charger le fichier xml ci-dessus, c'est légitime comportement et requis par l'application.

Je ne veux lire dans le fichier xml du disque une fois et relâchez toute référence au fichier sur le disque et l'utilisation d'une mémoire de la représentation à partir de ce point en avant.

J'aurais assumé la Charge fonctionne en lecture seule de la mode et n'a pas besoin de verrouiller le fichier, ce qui est mon meilleur moyen d'obtenir le résultat souhaité et obtenir autour de cette question?

Grâce

InformationsquelleAutor m3ntat | 2009-11-28