@@ -143,24 +143,12 @@ public static Assembly TryLoadAssembly(string assemblyName)
143
143
144
144
private static List < Type > GetFilteredTypesFromAssembly ( Assembly assembly , TypeOptionsAttribute filter )
145
145
{
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 ) ;
158
147
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 ++ )
161
150
{
162
- Type type = assemblyTypes [ i ] ;
163
-
151
+ Type type = visibleTypes [ i ] ;
164
152
if ( FilterConstraintIsSatisfied ( filter , type ) )
165
153
{
166
154
filteredTypes . Add ( type ) ;
@@ -170,6 +158,27 @@ private static List<Type> GetFilteredTypesFromAssembly(Assembly assembly, TypeOp
170
158
return filteredTypes ;
171
159
}
172
160
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
+
173
182
private static bool FilterConstraintIsSatisfied ( TypeOptionsAttribute filter , Type type )
174
183
{
175
184
return filter == null || filter . MatchesRequirements ( type ) ;
0 commit comments