public void Inspect() { IStreamObserver streamObserver = publish.Target as IStreamObserver; while (streamObserver != null) { string result = streamObserver.Inspect(); IStreamable streamable = streamObserver as IStreamable; if (streamable == null) { // Last element in the chain. // return; } // Follow the chain. // streamObserver = streamable.GetStreamObserver(); } }