2011-11-05 7 views
10

私は1つのクラスの支払いのためのライブラリプロジェクトを持っています。クライアントのライブクレデンシャルはウェブサイトのweb.configファイルにあり、このクラスライブラリプロジェクトはdll形式でbinに追加されます。だからクラスライブラリでConfigurationManagerを取得する方法私はクライアントの資格情報を取得してお支払いを行うことができますクラスライブラリでConfigurationManagerクラスを使用する方法プロジェクトタイプ

答えて

8

一般的に、ライブラリのクラスはweb.configを直接読み込んでコンストラクタで設定してはいけません。

しかし、いくつかのシナリオでは、web.configを直接読むことは許容されます。そのために、あなたはcustom configuration sectionを定義したり、あなたがのSystem.Webアセンブリへの参照を追加する必要があり、あなたは構成マネージャを使用するファイルに名前空間System.Web.Configurationを含める必要がWebConfigurationManager.AppSettings

を使用することができます。

+0

を行うことによって、プロジェクトのクラスでこれらの設定にアクセスする私はあなたのリンクからコードを得ましたが、それでもWebconfigurationManagerスタジオ –

+0

@Muhammadの知性には示されていないので、あなたがそのためのいくつかのコードを書くことができます - あなたはこのコメントについて詳しく説明することはできますか? <<一般的に、ライブラリ内のクラスはweb.configを直接読み込んでコンストラクタで設定してはいけません。 >>それはなぜですか?私は、クラスライブラリがWebアプリケーションホストのコンテキストでロードされるので、構造的にはこれはOKだったと仮定しました。 – Howiecamp

+0

あなたがクラスを単体テストする場合、それを供給するためのweb.configはありません。また、ライブラリは、特定のライブラリを持っていない限り、実行するプラットフォームやコンテキストに結びつけない再利用可能なユーティリティですWebベースのアプリケーションの場合のみです。その場合、configはライブラリではなくアプリケーションによって所有されているため、独自のconfigセクションを定義することができます。 –

0

クラスライブラリの設定をweb.configに移動します。

1

クラスライブラリからそのクラスを移動することができますが、できない場合やそうしたくない場合は、System.Configurationを使用できます。

1)System.Configurationへの参照を追加します。

2)WebConfigurationManagerの代わりにConfigurationManagerを使用します。コードはほぼ同じですが、WebConfigurationManagerをConfigurationManagerに置き換えてください。

0

私はこの同じ問題を抱えていましたが、ConfigurationManagerを使用して設定ファイルの一部のプロパティにアクセスしたいとします。

代わりに、設定ファイルをプロジェクトに追加することもできます。それはプロジェクトで行ったことです:

  1. プロジェクト名を右クリックし、メニューの[プロパティ]をクリックします。
  2. 左側のタブの設定リンクをクリックしてください。
  3. まだ生成していない場合は、VSを作成してリンクを作成します。
  4. 作成したら、必要なプロパティのキー値のペアを追加できます。
  5. VSには、設定ファイルに追加したプロパティを含むsettings.settingsファイルがプロジェクトに含まれます(C#を使用していると仮定してSettings.Designer.csに表示されます)
  6. [ProjectNamespace].Properties.Settigns.Default.[PropertyName]
関連する問題