4

C# でファイルからキーを読み取りたいのですが、App.configどうすればよいですか?

使えるのはわかってるけど、

string filetype = ConfigurationSettings.AppSettings("filetype");

しかし、ハードコードされたキーを使用したくありません。

その理由は、私のプロジェクトには、別々の app.config ファイルと別々のキーを持つ 2 つのライブラリがあるためです。キーをハードコーディングせずに、1 つのクラスのみでキーを読み取りたい。

4

2 に答える 2

6

You can create strongly-typed sections in app.config, so that you won't need to use the "magic string" keys such as "filetype" in your example.

See: How to: Create Custom Configuration Sections Using ConfigurationSection on MSDN.

Creating the sections is somewhat involved, but there's an excellent Visual Studio plugin that generates all the code and schema from your design. See: Configuration Section Designer on CodePlex.

Update

Looks like I misunderstood the point of the question. There's no way to use multiple app.config files, or an app.config file that is placed in a class library (as far as I know). At runtime, all that's left of the class library is its DLL; by default any app.config file does not get copied over to the application by the msbuild process.

You may want to consider using your own XML configuration file within each class library, and setting its properties:

  • Build Action to Content
  • Copy to Output Directory to Copy Always
于 2012-09-02T11:02:46.420 に答える
0

構成オブジェクトを次のように使用して、この問題を解決しました。

Instance.GetConfigValue(strLst.AppSettings.Settings.AllKeys.ElementAt(0)); を返します。

于 2012-09-03T08:04:11.603 に答える