// 释放时移除标记的 RunMode 模式 void IDisposable.Dispose() { // BusinessScope 释放时,移除当前业务块,恢复上层业务块 RunScope.current = this.previous; this.previous = null; }
private RunScope(RunMode runMode) { this.runMode = runMode; // 通过线程相关的静态字段实现 // 设置线程上下文中的运行模式为指定模式,设置后,通过 RunContext.Current.RunMode 得到的运行模式将为该模式,直到当前 BusinessScope 被释放。 this.previous = RunScope.current; RunScope.current = this; }