From 0331bde4e1c335f115f1ce2c6ab55fd7791dbd14 Mon Sep 17 00:00:00 2001 From: Joram Date: Mon, 18 Jun 2018 19:31:44 +0200 Subject: [PATCH 1/2] Plugin folder get recognized as seperate dll --- Scripts/NodeDataCache.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/NodeDataCache.cs b/Scripts/NodeDataCache.cs index 23507a6..8d6bbe7 100644 --- a/Scripts/NodeDataCache.cs +++ b/Scripts/NodeDataCache.cs @@ -49,7 +49,7 @@ namespace XNode { List nodeTypes = new List(); System.Reflection.Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies(); 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) nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t))); } else { From 4bfb6c4b8b7958d3d8786d083c87e0a16739cffe Mon Sep 17 00:00:00 2001 From: Joram Date: Mon, 18 Jun 2018 20:52:58 +0200 Subject: [PATCH 2/2] optimized dll caching --- Scripts/NodeDataCache.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Scripts/NodeDataCache.cs b/Scripts/NodeDataCache.cs index 8d6bbe7..b194230 100644 --- a/Scripts/NodeDataCache.cs +++ b/Scripts/NodeDataCache.cs @@ -53,8 +53,12 @@ namespace XNode { // If xNode is not used as a DLL, check only CSharp (fast) nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t))); } else { - // Else, check all DDLs (slow) + // Else, check all relevant DDLs (slower) + // ignore all unity related 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()); } }