//Создаем список namespaces private AssemblyNamespace GetOrAddNamespace(Type type) { AssemblyNamespace result = null; foreach (AssemblyNamespace nameSpace in nameSpaces) { if (nameSpace.FullName == type.Namespace) { result = nameSpace; } } if (result == null) { result = new AssemblyNamespace(type.Namespace); nameSpaces.Add(result); } return(result); }
public AssemblyStructure(Assembly assembly) { Type[] types = null; try { types = assembly.GetTypes().Where(item => Attribute.GetCustomAttribute(item, typeof(CompilerGeneratedAttribute)) == null).ToArray(); } catch (ReflectionTypeLoadException e) { types = e.Types.Where(t => t != null).ToArray(); } //Проходимся по всем классам,структурам и тд, что бы сформировать namespaces for (int i = 0; i < types.Length; i++) { AssemblyNamespace ass = GetOrAddNamespace(types[i]); ass.AddType(types[i]); } }