예제 #1
0
        private static bool FilterConstraintIsSatisfied(ClassTypeConstraintAttribute filter, Type type)
        {
            if (filter == null)
            {
                return(true);
            }

            return(filter.IsConstraintSatisfied(type));
        }
예제 #2
0
 /// <summary>
 /// Filters the types.
 /// </summary>
 /// <param name="assembly">The assembly.</param>
 /// <param name="filter">The filter.</param>
 /// <param name="output">The output.</param>
 private static void FilterTypes(Assembly assembly, ClassTypeConstraintAttribute filter, List <Type> output)
 {
     foreach (var type in assembly.GetTypes())
     {
         if (!type.IsPublic || !type.IsClass)
         {
             continue;
         }
         if (filter != null && !filter.IsConstraintSatisfied(type))
         {
             continue;
         }
         if (type.GetCustomAttributes(typeof(HideInInspector), true).FirstOrDefault() != null)
         {
             continue;
         }
         output.Add(type);
     }
 }
예제 #3
0
        private static List <Type> GetFilteredAssemblyTypes(Assembly assembly, ClassTypeConstraintAttribute filter)
        {
            var types = new List <Type>();

            foreach (var type in assembly.GetTypes())
            {
                if (!type.IsVisible || !type.IsClass)
                {
                    continue;
                }

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

                types.Add(type);
            }

            return(types);
        }
예제 #4
0
        private 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);
            }
        }