33 using System ;
44 using System . Collections . Generic ;
55 using System . IO ;
6- using System . Linq ;
76 using System . Reflection ;
87 using TypeReferences ;
98 using UnityEngine ;
@@ -144,13 +143,23 @@ public static Assembly TryLoadAssembly(string assemblyName)
144143
145144 private static List < Type > GetFilteredTypesFromAssembly ( Assembly assembly , TypeOptionsAttribute filter )
146145 {
147- var visibleTypes = GetVisibleTypesFromAssembly ( assembly ) ;
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+
148158 var filteredTypes = new List < Type > ( ) ;
149- int visibleTypesCount = visibleTypes . Count ;
150159
151- for ( int i = 0 ; i < visibleTypesCount ; i ++ )
160+ for ( int i = 0 ; i < assemblyTypes . Length ; i ++ )
152161 {
153- Type type = visibleTypes [ i ] ;
162+ Type type = assemblyTypes [ i ] ;
154163
155164 if ( FilterConstraintIsSatisfied ( filter , type ) )
156165 {
@@ -161,31 +170,6 @@ private static List<Type> GetFilteredTypesFromAssembly(Assembly assembly, TypeOp
161170 return filteredTypes ;
162171 }
163172
164- private static List < Type > GetVisibleTypesFromAssembly ( Assembly assembly )
165- {
166- try
167- {
168- var assemblyTypes = assembly . GetTypes ( ) ;
169-
170- var visibleTypes = new List < Type > ( assemblyTypes . Length ) ;
171-
172- for ( int i = 0 ; i < assemblyTypes . Length ; i ++ )
173- {
174- Type type = assemblyTypes [ i ] ;
175-
176- if ( type . IsVisible )
177- visibleTypes . Add ( type ) ;
178- }
179-
180- return visibleTypes ;
181- }
182- catch ( ReflectionTypeLoadException e )
183- {
184- Debug . LogError ( $ "Types could not be extracted from assembly { assembly } : { e . Message } ") ;
185- return new List < Type > ( 0 ) ;
186- }
187- }
188-
189173 private static bool FilterConstraintIsSatisfied ( TypeOptionsAttribute filter , Type type )
190174 {
191175 return filter == null || filter . MatchesRequirements ( type ) ;
0 commit comments