2008-10-02 3 views
9

私のプロジェクトでは、Webアプリケーションとコンソールアプリケーション(タスクスケジューラから起動する)として使用されている機能があります。これを行うには、Webアプリケーションとコンソールアプリケーションの両方で使用されているDLLに共通コードを挿入します。これは正常に動作します。DLLに設定情報を入れよう

ただし、コンソールとWebアプリケーションのApp.configとWeb.configはほとんど同じです。この設定をDLLに入れて、両方のアプリケーションで使用できるようにすることは可能ですか?

答えて

7

はい、一般的な構成設定をDLLの構成ファイルに入れることができます。 app.configファイルをDLLプロジェクトに追加して、DLL内から構成設定を読み込むだけです。展開すると、設定ファイルの名前が "MyDLL.dll.config"(DLLの名前が "MyDLL.dll"であることが前提)で、DLLと同じフォルダに存在する必要があります。

+9

それがGACにある場合はどうなりますか? – Ryu

+0

dllはどのように設定ファイルを参照しますか?設定ファイルの場所をどのように知るのですか? – BKSpurgeon

+0

@BKSpurgeon:設定ファイルがDLLと同じフォルダにあることを*知っていません - それはそれが探している場所のほんの一例です。そのため、DLLのどこにでも設定ファイルのパスを指定する必要はありません。 – MusiGenesis

1

設定の読み込みを設定全体ではなくdllに移してから、別のアプリケーションから呼び出すことをお勧めします。あなたは、これはすでにdllファイルで可能になり、将来的に再び設定を分割する必要がある場合は

  1. あなたは
  2. (常に便利)設定データを変更するには再コンパイルする必要はありません。これはようです。
0

あなたは、Windowsのレジストリの下に共通の構成を置くことができ、あなたが

+0

新しいマシンに展開するのは困難です。 – MusiGenesis

+0

は、手で配備する場合にのみ表示されます。また、最初のデフォルト値は最初のデフォルト値を挿入して初めて挿入することができます –

0

あなたは.NETを使用していると仮定すると、好きな場所、あなたの設定データを保存するために.settingsファイルを設定することができますアクセス - データが存在します含まれていますこれらの設定エントリのデフォルト値として保存されるため、app.configファイルがなくてもアプリケーションはそのデフォルトで実行されます。

私はそれは良いことだとは言わないよ... 8)

だから、あなたはあなたのDLLを参照するプロジェクトをビルドする場合は、あなたがそのプロジェクトに同じ.settingsファイルを追加し、それらの設定が表示されますappのapp.configファイルで、DLLはこれらの値を読み取ることができます。これらの値がapp.configにない場合、dllはデフォルト値に戻ります。

ほとんどの人は、それは悪いことだと思うでしょう。私は同意しがちですが、あなたはそこにいるのです。

関連する問題