2010-11-04 60 views
0

這是一個遠射,但有沒有什麼辦法讓我的代碼每次運行時都會在我的應用程序中創建一個SqlConnection?我想不出創建連接時觸發的Ado.net事件,但我可能錯過了一個。是否有任何地方可以「掛鉤」創建SQL Server連接?

(否則我將不得不把它添加到少數在我們的數據訪問層的代碼路徑,並希望它被添加到任何新創建的代碼路徑。)

+0

你想實現什麼?任何類型的日誌記錄? – 2010-11-04 09:31:40

+0

@Yves,我想添加一個檢查數據庫中的一些「標誌」的狀態,請參閱http://stackoverflow.com/questions/4095216/how-can-i-tell-when-i-am-given -an-un-cached-sqlserver-connection有一些更多的背景 – 2010-11-04 09:36:04

回答

2

也許你有一個連接工廠,所有的請求路由到此代碼,以便您可以在此處添加您的代碼,或通過重寫SqlConnection構造函數並隱藏默認構造函數。

+0

工廠模式肯定是我會去的!也許向FxCop添加一些規則來捕獲在工廠類之外實例化SqlConnection的任何代碼。 – 2010-11-04 09:37:38

+0

這是一個新的代碼庫,我希望找到一個連接工廠,我可以使用,但我問這個問題,所以我可以有一個「計劃B」 – 2010-11-04 09:39:05

0

SqlConnection類中有一個StateChange事件,您可以在其狀態發生變化時(從closedopen或返回)通知您。

查看詳情relevant MSDN docs

+0

問題是我需要嘮叨創建的連接對象成爲訂閱該事件的熱情。 – 2010-11-04 12:16:34

相關問題