public Node Activated(ActivatedEventArgs <object> e) { // remove a link in chain if (_component == null) { TraceMessage("UNMATCHED: Activated[{2}] {0} {1}", e.Component); return(this); } if (_component.Id != e.Component.Id) { _chain = _chain.Activated(e); return(this); } TraceMessage("Activated[{2}] {0} {1}", e.Component); Interlocked.Increment(ref _activatedCount); var chain = _chain; _chain = null; return(chain); }