2012-10-21 27 views
2

是否可以定義自己的環境類?如何編寫環境類

例如,TransactionScope類可以讓任何實現IEnlistmentNotification(我認爲)的對象都可用,而不需要任何代碼將一個對象的引用顯式地傳遞給另一個對象。我不知道我是否需要使用它,但理解它是如何工作的(即我如何在自己的代碼中實現這些功能)會很有趣。這是我們可以構建到我們自己的類中的東西,還是在較低級別開發的某種東西,以允許TransactionScope在「常規開發人員」級別之外執行某些操作?

回答

2

書寫new TransactionScope()只是設置靜態Transaction.Current property

其他類可以檢查此屬性是否不爲空並在事務中登記自己。

沒有魔法介入。

+0

啊,出於某種原因,我沒有想到這一點;我想是因爲可以參與的圖書館非常不同,我認爲他們沒有辦法分享信息。謝謝@Slaks。雖然我缺乏魔法,但我有點失望。 – JohnLBevan

+0

@JohnLBevan:恕我直言,圖書館的魔法是邪惡的。除了像字符串,數組和反射這樣的核心thiungs,你可以在.Net類庫中重複所有的東西。幾乎沒有任何魔法。 – SLaks

+0

確實 - 它往往會導致意想不到的行爲;魔法違背了一致性的規則。 – JohnLBevan