- PR -

クラスライブラリでのWeb参照を動的に変更したい

1
投稿者投稿内容
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2005-06-17 11:05
Web参照を動的に変更したい場合の手順は以下です。

  1. プロパティを「ダイナミック」にする。
  2. app.configというファイルが生成され、参照先が記述される。
  3. ビルドすると、hoge.exe.configというファイルに置き換わる。
  4. hoge.exe.configの参照先を変更することで、Webの参照先を動的に変えられる。

この方法は、プロジェクトがWindowsアプリケーションでは有効なのですが、クラスライブラリの場合、どうなるのでしょうか?

画面数が多いため、各画面でWeb参照を行うのは面倒です。
そのため、Web参照を一つのDLLにまとめて、各画面からは参照するようにしました。
ビルドしてもhoge.dll.config というのは生成されないので、普通の方法ではできないようです。

何か情報がありましたら、お願いします。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-06-17 16:04
引用:

siopさんの書き込み (2005-06-17 11:05) より:
この方法は、プロジェクトがWindowsアプリケーションでは有効なのですが、クラスライブラリの場合、どうなるのでしょうか?

そのため、Web参照を一つのDLLにまとめて、各画面からは参照するようにしました。
ビルドしてもhoge.dll.config というのは生成されないので、普通の方法ではできないようです。


configファイル(構成ファイル)というのは、言ってみれば実行単位毎に存在する(読み込まれる)ものです。
あるexeを実行中にdllを使用したなら、exeという実行環境内でdllも動作します。
configファイルは、この実行環境につき一つ使用されます(いろんな意味で厳密な表現ではありませんが)。

なので、dllを参照して使用するアプリケーションの*.exde.configに設定を書くことになります。
もしdllを使用するのがWebアプリケーションなら、Web.configになります。

ただし、このようにWeb参照をdllのプロジェクトで作成する場合、Web参照のURLの、「VS上での扱い」が怪しくなるので注意してください。
siop
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 67
投稿日時: 2005-06-20 11:26
ありがとうございました。
引用:

なので、dllを参照して使用するアプリケーションの*.exde.configに設定を書くことになります。


上記の指定で、できました。

WindowsアプリケーションとしてWeb参照してなくても、*.exe.config を自作できるんですね。
仮にWeb参照させて、*.exe.config を自動生成させて保存しておき、key を変更する方法で行いました。
1

スキルアップ/キャリアアップ(JOB@IT)