Beispiel #1
0
        //Создаем список 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);
        }
Beispiel #2
0
        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]);
            }
        }