ホームページ > バックエンド開発 > C++ > app.config を使用せずにライブラリが構成設定にアクセスするにはどうすればよいですか?

app.config を使用せずにライブラリが構成設定にアクセスするにはどうすればよいですか?

DDD
リリース: 2025-01-01 12:11:10
オリジナル
890 人が閲覧しました

How Can Libraries Access Configuration Settings Without Using app.config?

ライブラリの構成設定の提供: App.config の代替手段

実行可能アプリケーションとは異なり、ライブラリ (DLL) は、 app.config ファイル。ただし、ライブラリを使用するアプリケーション間の互換性を確保しながら、ライブラリに固有の構成設定を保存することは可能です。

別個の構成ファイルの利用

1 つのアプローチは、 DLL に付随する別の構成ファイル。ファイル名は、DllName.dll.config という特定の規則に従います。 app.config とは異なり、このファイルはアプリケーションによって自動的にロードされません。

構成ファイルをロードして読み取るには、カスタム関数を定義できます。

string GetAppSetting(Configuration config, string key)
{
    // Retrieve the configuration element for the specified key
    KeyValueConfigurationElement element = config.AppSettings.Settings[key];
    
    // Check if the element exists and has a non-empty value
    if (element != null && !string.IsNullOrEmpty(element.Value))
        return element.Value;
    
    // Return an empty string if the key does not exist or has no value
    return string.Empty;
}
ログイン後にコピー

この関数を使用するには、 Configuration クラスのインスタンスを取得して GetAppSetting に渡すことができます。

Configuration config = null;

// Determine the location of the executable's configuration file
string exeConfigPath = this.GetType().Assembly.Location;

// Attempt to load the configuration file
try
{
    config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);
}
catch (Exception ex)
{
    // Handle the error here, indicating that the DLL has no satellite configuration file
}

if (config != null)
{
    // Read a setting using the custom function
    string myValue = GetAppSetting(config, "myKey");
    
    // ... Use the setting as needed
}
ログイン後にコピー

System.Configuration 名前空間への参照を忘れずに含めてください。そして、.config ファイルの [出力ディレクトリにコピー] プロパティを [常にコピー] に設定して、DLL を使用して展開できるようにします。

以上がapp.config を使用せずにライブラリが構成設定にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート