private object Eval(string arg) { List <string> fields; if (ReferenceEquals(arg, lastArg)) { fields = lastFields; } else { if (!cacheField.TryGetValue(arg, out fields)) { fields = arg.Split('.').ToList(); cacheField[arg] = fields; } lastFields = fields; lastArg = arg; } return(ClrDump.GetFieldValueImpl(Address, ClrType, fields)); }