public virtual bool Resolve(List targetList, string name, EntityType flags) { bool found = false; foreach (IEntity member in GetMembers()) { if (!NameResolutionService.IsFlagSet(flags, member.EntityType)) { continue; } if (member.Name == name) { targetList.AddUnique(member); found = true; } } if (IsInterface) { if (_typeSystemServices.ObjectType.Resolve(targetList, name, flags)) { found = true; } foreach (IType baseInterface in GetInterfaces()) { found |= baseInterface.Resolve(targetList, name, flags); } } else { if (!found || TypeSystemServices.ContainsMethodsOnly(targetList)) { IType baseType = BaseType; if (null != baseType) { found |= baseType.Resolve(targetList, name, flags); } } } return(found); }