public IValueProvider[] GetNavigableProperties(object o) { IValueProvider[] properties = (IValueProvider[])_cache[o]; if (null == properties) { properties = FindNavigableProperties(o); _cache[o] = properties; } return properties; }