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);
}