Esempio n. 1
0
        private void LoadAssemblyTypes(Assembly ass, int namespaceLevels, Predicate <Type> filter)
        {
            Type[] types = UTAssembly.GetTypesFromAssemblies(ass);
            if (filter != null)
            {
                types = types.Where(e => filter(e)).ToArray();
            }

            string[] nsps = UTType.NamespacesFromTypes(types, namespaceLevels);

            List <NamespaceMap> maps = new List <NamespaceMap>();

            foreach (string s in nsps)
            {
                NamespaceMap map = new NamespaceMap(
                    s,
                    types.Where(t => t.Namespace == null ? s == "_NoNamespace" : t.Namespace.SeparatorLevelPrune('.', namespaceLevels) == s).ToArray()
                    );

                maps.Add(map);
            }

            _assemblyMap[ass] = new AssemblyContents(maps.ToArray());
        }