Example #1
0
        static void FilterTypes(Assembly assembly, ClassTypeConstraintAttribute filter, ICollection <Type> excludedTypes, List <Type> output)
        {
            foreach (var type in assembly.GetTypes())
            {
                if (!type.IsVisible || !type.IsClass)
                {
                    continue;
                }

                if (filter != null && !filter.IsConstraintSatisfied(type))
                {
                    continue;
                }

                if (excludedTypes != null && excludedTypes.Contains(type))
                {
                    continue;
                }

                output.Add(type);
            }
        }