public override object this[object key] { get { if (this.ContainsKey(key)) { return base[key]; } if (this.interpreter.OnGetUnknownItem == null) { return null; } return this.interpreter.OnGetUnknownItem(key); } set { base[key] = value; } }