2012-10-21 28 views
2

是否可以定义自己的环境类?如何编写环境类

例如,TransactionScope类可以让任何实现IEnlistmentNotification(我认为)的对象都可用,而不需要任何代码将一个对象的引用显式地传递给另一个对象。我不知道我是否需要使用它,但理解它是如何工作的(即我如何在自己的代码中实现这些功能)会很有趣。这是我们可以构建到我们自己的类中的东西,还是在较低级别开发的某种东西,以允许TransactionScope在“常规开发人员”级别之外执行某些操作?

回答

2

书写new TransactionScope()只是设置静态Transaction.Current property

其他类可以检查此属性是否不为空并在事务中登记自己。

没有魔法介入。

+0

啊,出于某种原因,我没有想到这一点;我想是因为可以参与的图书馆非常不同,我认为他们没有办法分享信息。谢谢@Slaks。虽然我缺乏魔法,但我有点失望。 – JohnLBevan

+0

@JohnLBevan:恕我直言,图书馆的魔法是邪恶的。除了像字符串,数组和反射这样的核心thiungs,你可以在.Net类库中重复所有的东西。几乎没有任何魔法。 – SLaks

+0

确实 - 它往往会导致意想不到的行为;魔法违背了一致性的规则。 – JohnLBevan