public bool ResolveQualifiedName(List targetList, string name, EntityType flags)
{
if (!IsQualifiedName(name))
{
return Resolve(targetList, name, flags);
}
string[] parts = name.Split(DotArray);
string topLevel = parts[0];
_innerBuffer.Clear();
if (Resolve(_innerBuffer, topLevel) && 1 == _innerBuffer.Count)
{
INamespace ns = _innerBuffer[0] as INamespace;
if (null != ns)
{
int last = parts.Length-1;
for (int i=1; i<last; ++i)
{
_innerBuffer.Clear();
if (!ns.Resolve(_innerBuffer, parts[i], EntityType.Any) ||
1 != _innerBuffer.Count)
{
return false;
}
ns = _innerBuffer[0] as INamespace;
if (null == ns)
{
return false;
}
}
return ns.Resolve(targetList, parts[last], flags);
}
}
return false;
}