mirror of
https://github.com/Siccity/xNode.git
synced 2025-12-20 09:16:01 +08:00
Merge pull request #44 from Orcolom/fix/plugins
Fix for plugins bug #38
This commit is contained in:
commit
51bb98b4d1
@ -49,12 +49,16 @@ namespace XNode {
|
|||||||
List<System.Type> nodeTypes = new List<System.Type>();
|
List<System.Type> nodeTypes = new List<System.Type>();
|
||||||
System.Reflection.Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
|
System.Reflection.Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
|
||||||
Assembly selfAssembly = Assembly.GetAssembly(baseType);
|
Assembly selfAssembly = Assembly.GetAssembly(baseType);
|
||||||
if (selfAssembly.FullName.StartsWith("Assembly-CSharp")) {
|
if (selfAssembly.FullName.StartsWith("Assembly-CSharp") && !selfAssembly.FullName.Contains("-firstpass")) {
|
||||||
// If xNode is not used as a DLL, check only CSharp (fast)
|
// If xNode is not used as a DLL, check only CSharp (fast)
|
||||||
nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)));
|
nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)));
|
||||||
} else {
|
} else {
|
||||||
// Else, check all DDLs (slow)
|
// Else, check all relevant DDLs (slower)
|
||||||
|
// ignore all unity related assemblies
|
||||||
foreach (Assembly assembly in assemblies) {
|
foreach (Assembly assembly in assemblies) {
|
||||||
|
if (assembly.FullName.StartsWith("Unity")) continue;
|
||||||
|
// unity created assemblies always have version 0.0.0
|
||||||
|
if (!assembly.FullName.Contains("Version=0.0.0")) continue;
|
||||||
nodeTypes.AddRange(assembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)).ToArray());
|
nodeTypes.AddRange(assembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)).ToArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user