private ICompileUnit TryToLoadAssemblyContainingNamespace(string @namespace)
{
ICompileUnit asm = Parameters.LoadAssembly(@namespace, false);
if (asm != null)
return asm;
//try to load assemblies name after the parent namespaces
var namespaces = @namespace.Split('.');
if (namespaces.Length == 1)
return null;
for (var level = namespaces.Length - 1; level > 0; level--)
{
var parentNamespace = string.Join(".", namespaces, 0, level);
var existingReference = Parameters.FindAssembly(parentNamespace);
if (existingReference != null)
return null;
var parentNamespaceAssembly = Parameters.LoadAssembly(parentNamespace, false);
if (parentNamespaceAssembly != null)
return parentNamespaceAssembly;
}
return null;
}