Skip to content

Commit bdaad4a

Browse files
committed
fix: When calling type cannot be found, all assemblies are loaded instead of just Assembly-CSharp and its referenced assemblies.
1 parent e794335 commit bdaad4a

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

Editor/Util/TypeCollector.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,27 @@ internal static class TypeCollector
2727
/// </remarks>
2828
public static List<Assembly> GetAssembliesTypeHasAccessTo(Type type)
2929
{
30-
Assembly typeAssembly;
30+
List<Assembly> assemblies;
3131

3232
try
3333
{
34-
typeAssembly = type == null ? Assembly.Load("Assembly-CSharp") : type.Assembly;
35-
}
36-
catch (FileNotFoundException)
37-
{
38-
throw new FileNotFoundException("Assembly-CSharp.dll was not found. Please create any " +
39-
"script in the Assets folder so that the assembly is generated.");
40-
}
34+
Assembly typeAssembly = type == null ? Assembly.Load("Assembly-CSharp") : type.Assembly;
4135

42-
var referencedAssemblies = typeAssembly.GetReferencedAssemblies();
43-
var assemblies = new List<Assembly>(referencedAssemblies.Length + 1);
36+
var referencedAssemblies = typeAssembly.GetReferencedAssemblies();
37+
assemblies = new List<Assembly>(referencedAssemblies.Length + 1);
4438

45-
for (int i = 0; i < referencedAssemblies.Length; i++)
39+
for (int i = 0; i < referencedAssemblies.Length; i++)
40+
{
41+
assemblies[i] = Assembly.Load(referencedAssemblies[i]);
42+
}
43+
44+
assemblies[referencedAssemblies.Length] = typeAssembly;
45+
}
46+
catch (FileNotFoundException)
4647
{
47-
assemblies[i] = Assembly.Load(referencedAssemblies[i]);
48+
assemblies = new List<Assembly>(AppDomain.CurrentDomain.GetAssemblies());
4849
}
4950

50-
assemblies[referencedAssemblies.Length] = typeAssembly;
51-
5251
return assemblies;
5352
}
5453

@@ -171,12 +170,13 @@ private static List<Type> GetVisibleTypesFromAssembly(Assembly assembly)
171170
{
172171
var assemblyTypes = assembly.GetTypes();
173172
var visibleTypes = new List<Type>(assemblyTypes.Length);
174-
for (int i = 0; i < assemblyTypes.Length; i++)
173+
174+
foreach (Type type in assemblyTypes)
175175
{
176-
Type type = assemblyTypes[i];
177176
if (type.IsVisible)
178177
visibleTypes.Add(type);
179178
}
179+
180180
return visibleTypes;
181181
}
182182
catch (ReflectionTypeLoadException e)

0 commit comments

Comments
 (0)