19

大きなアプリケーションへのプラグインである C# .NET 2.0 .dll を作成しています。私のモジュールのビジュアル スタジオ プロジェクトには、MyProj.dll と共に MyProj.dll.config にコピーされる app.config ファイルがあります。

計画では、.dll が展開された後に MyProj.dll.config が編集されます。その変更されたローカル ファイルから設定を読み取ろうとしています。LocalFilesSettingsObject を取り出して、そのアプリケーション名を次のように .dll に変更しようとしました。

        Properties.Settings config = Properties.Settings.Default;
        SettingsContext context = config.Context;
        SettingsPropertyCollection properties = config.Properties;
        SettingsProviderCollection providers = config.Providers;
        SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"];
        configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name;
        config.Initialize(context, properties, providers);
        config.Reload();

それは機能していません。.NET設定の混乱全体に頭を悩ませています。このタスクを完了するためのレシピが欲しいです。.NET 2.0 で設定がどのように機能するかについての明確な説明 (例を含む) へのリンクもお願いします。

4

2 に答える 2

27

x.dll.config(構成 API を使用して) 自分でロードする必要があります。すべての自動ファイル処理 (を含む.Settings) は、すべて machine.config/y.exe.config/user-settings に関するものです。

名前付き構成ファイルを開くには:

  • 参照System.Configuration.dllアセンブリ。
  • 使用するSystem.Configuration
  • 次のようなコードを作成します。

    Configuration GetDllConfiguration(Assembly targetAsm) {
      var configFile = targetAsm.Location + ".config";
      var map = new ExeConfigurationFileMap {
        ExeConfigFilename = configFile
      };
      return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    }
    
于 2009-08-01T10:53:17.837 に答える
7

1-ビジュアルスタジオでapp.configファイルを開きます

2-「構成」タグで、次のようにタグ「appSettings」に構成を追加します。

<configuration>
    <appSettings>
        <add key="UserName" value="aaa"/>
        <add key="Password" value="111"/>
    </appSettings>
</configuration>

3-あなたのコードで

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
string userName = appConfig.AppSettings.Settings["UserName"].Value;
string password = appConfig.AppSettings.Settings["Password"].Value;

「ConfigurationManager」と「Assembly」にこの 2 つの usings を追加することを忘れないでください。

  • System.Configuration を使用します。
  • System.Reflection を使用します。

System.Configuration が表示されない場合は、参照に「System.Configuration」という参照を追加する必要があります。

4- 次のように dll の構成を更新できます。

  • ファイル「MyProj.dll.config」を開きます
  • 次に、構成を更新します
于 2016-11-15T11:29:38.003 に答える