1

私は次のようなコードを持っています:

var mySetting = ConfigurationManager.AppSettings["mySetting"];

「mySetting」のような文字列キーを使用する必要がないように、各設定をカプセル化するプロパティを作成する方法はありますか? 「カスタム構成セクション」を作成することでそれができることは知っていますが、別のセクションを作成したくありません... 既存の <appSettings> セクションを使用したいです。

4

4 に答える 4

3

別のオプションは、アプリケーション設定を取得するために使用できる別のインターフェイスを作成することです

public interface IFooSettings
{
  int MySettings{get;}
}

public class ApplicationSettings : IFooSettings
{
  public string MySettings{get; private set;}
ApplicationSettings()
{
 MySettings = ConfigurationManager.AppSettings["mySetting"];

}
}

これの威力は、何らかの理由で構成をデータベースに保存し始めたい場合に、データベースを使用するために IFooSettings からクラスを派生させるだけでよいことです。

public class SqlApplicationSettings : IFooSettings
{
SqlApplicationSettings()
{
  //Do Something to populate the settings
}
  public string MySettings{get; private set;}
}

確かに、これはアプリケーションにとってはやり過ぎかもしれませんが、ConfigurationManager やその他のソースに縛られないため、多くの柔軟性が得られます。

于 2009-10-19T16:39:11.647 に答える
2

はい - Visual Studio が提供する「設定」クラスを使用します - 「新しい項目の追加」を使用し、「設定」を選択します。

これにより、厳密に型指定されたプロパティ (string、int など) とすべてを持つクラスが得られます。

これにより、カスタム構成セクションの app.config に必要なエントリが追加されますが、実際にはすべて既に提供されているので、車輪を再発明する必要はありません。

マルク

于 2009-10-19T16:17:36.210 に答える
0

http://www.codeproject.com/KB/cs/genuilder.aspxを使用すると、ASP.NETプロジェクトでこれを実行できます。

于 2009-11-23T23:51:54.233 に答える
0

Visual Studio でグラフィカルにこれを行うことができるConfiguration Section Designerを確認してください。

于 2009-10-19T17:33:24.130 に答える