private void AssemblyLoaded(Assembly assembly) { if (assembly is AssemblyBuilder) { return; } foreach (Type type in assembly.GetExportedTypes()) { Module module = rootModule; if (type.Namespace != null) { foreach (string part in type.Namespace.Split(new char[] { Type.Delimiter })) { if (module.IsDefined(part)) { module = (Module)module.GetName(part); } else { Module child = new Module(module, part); module.SetName(child.Name, child); module = child; } } } module.SetName(type.Name, type); } }