public object this[int level] { get { if (level < 0) { throw new ArgumentOutOfRangeException(nameof(level)); } if (_contextStack != null && level < _contextStack.Count) { return _contextStack[_contextStack.Count - 1 - level]; } return null; } }