2011-10-25 25 views
0

有沒有一種方法可以在N層應用程序中發生狀態更改(遇到環境或異常流)時更新存儲庫中的數據訪問類?在我的程序中,我有以下內容:如何讓數據訪問層知道當前的應用程序狀態?

  • DAC存儲庫。持有委託來「觀察」程序並更新連接字典。
  • 連接詞典。列出每個env和rdbms類型的所有連接字符串。
  • 業務層。封裝數據事務。這個有一個構造函數按值接受DAC Repository。

我懷疑這是一個DAC存儲庫傳遞給BLL的值傳遞問題,但不確定。連接與存儲庫正常工作,如果不使用BLL,DAC會更新,但一旦BLL被集成,BLL就會開始僅使用默認連接。

有什麼我可能錯過了?我是否應該讓BLL觀察DAC存儲庫?

回答

1

也許嘗試使用IoC容器爲此?我不確定是否正確,但如果您需要觀察可能會更改的某些設置,則可以將類型(或接口)傳遞給需要觀察設置的類型的構造函數。每次需要應用新設置時,只需丟棄該類型的舊實例並創建一個傳遞更新設置的新實例。

Settings currentSettings = ContainerService.Instance.Resolve<Settings>(); 
SomeType t = new SomeType(currentSettings); 
相關問題