0

この投稿は、私の以前の投稿の派生物です。ただし、そこに記載されていることをまだ実装しようとはしていません。ConfigurationManager.OpenExeConfiguration()を使用して構成をロードする方法を学びました。当然のことながら次の質問は、WCF 構成を管理する方法です。

私が行ったこと: クラス ライブラリ プロジェクト (と呼ばれるA) を作成し、wcf サービスへの参照を追加しました。Aプロジェクトの一部として app.config ファイルがありました。したがって、構成はVSによって自動的に生成されます。したがって、ビルドすると、 bin フォルダー内に生成されたアセンブリ ( 、および)Aが取得されます。AA.dllA.dll.configA

B別のプロジェクト ( ) をソリューションに追加します。Aプロジェクトを参照として追加します。したがって、のビルド時にB、の bin フォルダーA.dllにコピーされます。Bまた、ビルド プロパティを変更して、 postのビルドを B の bin ディレクトリA.dll.configにコピーするようにします。B

クラスのメソッドでは、内部でA.dll次のような wcf プロキシを作成します。

var wcfProx = new MyWCFSvcClient();

このコンストラクターの呼び出しは、実際には、実行中のアセンブリの構成ファイルから値を取得します。自分の wcf プロキシを機能させたい場合は、A の app.config の system.ServiceModel を B の構成ファイルにコピーする必要があることを知っています。これは私がかつてやっていたことでした。

しかし、今度は、 でConfiguration開いたオブジェクトをConfigurationManager.OpenExeConfig()どうするか、また、そのオブジェクトを wcf プロキシ インスタンスに関連付ける方法を教えてください。つまり、プロキシ インスタンスは から値を取得する必要がありますA.dll.config

4

1 に答える 1

0

おそらく ConfigurationManager.OpenMappedExeConfiguration() が探しているものです。

http://msdn.microsoft.com/en-us/library/ms134269.aspx

サンプル コードでは、作成者は現在の構成を新しいファイルにコピーし、プログラムによって新しい構成セクションをファイルに追加します。

変更を保存してセクションをリセットすると、設定を読み戻すことができます。

これが現在実行中のアプリケーションの構成を変更するかどうかは判断できませんでしたが、試してみる価値はあります。

于 2012-05-25T05:14:40.740 に答える