public virtual Type[] GetAncestors(Type type) { Type[] ancestors = (Type[]) ancestorsTable[type]; if (ancestors != null) return ancestors; return ExtractAncestors(GetParents(type)); }