public virtual bool Resolve(ICollection <IEntity> resultingSet, string name, EntityType typesToConsider) { bool found = My <NameResolutionService> .Instance.Resolve(name, GetMembers(), typesToConsider, resultingSet); if (IsInterface) { if (_provider.Map(typeof(object)).Resolve(resultingSet, name, typesToConsider)) { found = true; } foreach (IType baseInterface in GetInterfaces()) { found |= baseInterface.Resolve(resultingSet, name, typesToConsider); } } else { if (!found || TypeSystemServices.ContainsMethodsOnly(resultingSet)) { IType baseType = BaseType; if (null != baseType) { found |= baseType.Resolve(resultingSet, name, typesToConsider); } } } return(found); }