private bool CachedResolve(string name, EntityType typesToConsider, ICollection<IEntity> resultingSet)
{
List<IEntity> list;
var result = _cache.TryGetValue(name, out list) || DoResolve(name, out list);
if (result)
{
if (list == null)
return false;
result = false;
foreach (var entity in list)
{
if (Entities.IsFlagSet(typesToConsider, entity.EntityType))
{
result = true;
resultingSet.Add(entity);
}
}
}
return result;
}