web-dev-qa-db-ja.com

カスタム構成ファイルのロード

静的ConfigurationManager.OpenExe(exePath)メソッドを使用して、アセンブリに関連する構成ファイルを開くことができますが、アセンブリに関連しない構成を開きたいだけです。単なる標準の.NET構成ファイル。

112
Adam

リッキーが投稿した記事は非常に優れていますが、残念ながら彼らはあなたの質問に答えません。

問題を解決するには、次のコードを試してください。

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);

構成内の値にアクセスする必要がある場合は、インデックス演算子を使用できます。

config.AppSettings.Settings["test"].Value;
230
Oliver

構成ファイルは単なるXMLファイルであり、次の方法で開くことができます。

private static XmlDocument loadConfigDocument()
{
    XmlDocument doc = null;
    try
    {
        doc = new XmlDocument();
        doc.Load(getConfigFilePath());
        return doc;
    }
    catch (System.IO.FileNotFoundException e)
    {
        throw new Exception("No configuration file found.", e);
    }
    catch (Exception ex)
    {
        return null;
    }
}

後で値を取得する:

    // retrieve appSettings node

    XmlNode node =  doc.SelectSingleNode("//appSettings");
9
Otávio Décio
4
Yuki