2011-10-25 11 views
0

N層アプリケーション内で状態変更(環境または例外フローが発生した場合)が発生するたびに、リポジトリ内のデータアクセスクラスが更新されるような方法はありますか?私のプログラムでは、私は以下を持っています:データアクセス層に現在のアプリケーション状態を認識させる方法を教えてください。

  • DACリポジトリ。デリゲートがプログラムを「観察」し、接続辞書を更新するのを待ちます。
  • 接続辞書。 envおよびrdbmsタイプごとにすべての接続文字列を一覧表示します。
  • ビジネスレイヤ。データトランザクションをカプセル化します。これには、DACリポジトリを値で受け入れるコンストラクタがあります。

これは、DACリポジトリのBLLへの値渡しの問題であると思われますが、わかりません。リポジトリとの接続はうまく動作し、BLLを使用していない場合はDACが更新されますが、BLLが統合されるとBLLはデフォルト接続のみを使用し始めます。

私が見逃したことはありますか? BLLにもDACリポジトリを観察させるべきですか?

答えて

1

これはIoCコンテナを使用してみますか?私はこれを正しく理解していませんが、設定を観察する必要があるタイプのコンストラクターに型(またはインターフェース)を渡すことができる、いくつかの設定を観察する必要がある場合は、新しい設定を適用する必要があるたびに、タイプの古いインスタンスを破棄し、新しい設定を渡して更新された設定を渡します。

Settings currentSettings = ContainerService.Instance.Resolve<Settings>(); 
SomeType t = new SomeType(currentSettings); 
関連する問題