@@ -143,24 +143,12 @@ public static Assembly TryLoadAssembly(string assemblyName)
143143
144144 private static List < Type > GetFilteredTypesFromAssembly ( Assembly assembly , TypeOptionsAttribute filter )
145145 {
146- Type [ ] assemblyTypes ;
147-
148- try
149- {
150- assemblyTypes = assembly . GetTypes ( ) ;
151- }
152- catch ( ReflectionTypeLoadException e )
153- {
154- Debug . LogError ( $ "Types could not be extracted from assembly { assembly } : { e . Message } ") ;
155- return new List < Type > ( 0 ) ;
156- }
157-
146+ var visibleTypes = GetVisibleTypesFromAssembly ( assembly ) ;
158147 var filteredTypes = new List < Type > ( ) ;
159-
160- for ( int i = 0 ; i < assemblyTypes . Length ; i ++ )
148+ int visibleTypesCount = visibleTypes . Count ;
149+ for ( int i = 0 ; i < visibleTypesCount ; i ++ )
161150 {
162- Type type = assemblyTypes [ i ] ;
163-
151+ Type type = visibleTypes [ i ] ;
164152 if ( FilterConstraintIsSatisfied ( filter , type ) )
165153 {
166154 filteredTypes . Add ( type ) ;
@@ -170,6 +158,27 @@ private static List<Type> GetFilteredTypesFromAssembly(Assembly assembly, TypeOp
170158 return filteredTypes ;
171159 }
172160
161+ private static List < Type > GetVisibleTypesFromAssembly ( Assembly assembly )
162+ {
163+ try
164+ {
165+ var assemblyTypes = assembly . GetTypes ( ) ;
166+ var visibleTypes = new List < Type > ( assemblyTypes . Length ) ;
167+ for ( int i = 0 ; i < assemblyTypes . Length ; i ++ )
168+ {
169+ Type type = assemblyTypes [ i ] ;
170+ if ( type . IsVisible )
171+ visibleTypes . Add ( type ) ;
172+ }
173+ return visibleTypes ;
174+ }
175+ catch ( ReflectionTypeLoadException e )
176+ {
177+ Debug . LogError ( $ "Types could not be extracted from assembly { assembly } : { e . Message } ") ;
178+ return new List < Type > ( 0 ) ;
179+ }
180+ }
181+
173182 private static bool FilterConstraintIsSatisfied ( TypeOptionsAttribute filter , Type type )
174183 {
175184 return filter == null || filter . MatchesRequirements ( type ) ;
0 commit comments