From 7d0b83b1861cf310326ac76aa0a9b4c4c39e1f55 Mon Sep 17 00:00:00 2001 From: Daniel Santana Date: Tue, 22 Dec 2015 16:02:32 +0000 Subject: [PATCH 1/2] Fix for 3dsMax Python Importing clr in 3dsMax python, causes the application to crash on GetTypes from certain assemblies. --- src/runtime/assemblymanager.cs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/runtime/assemblymanager.cs b/src/runtime/assemblymanager.cs index 29add80be..ad6c8363c 100644 --- a/src/runtime/assemblymanager.cs +++ b/src/runtime/assemblymanager.cs @@ -12,6 +12,7 @@ using System.Collections; using System.Collections.Specialized; using System.Collections.Generic; +using System.Diagnostics; using System.Reflection; using System.Reflection.Emit; @@ -57,10 +58,17 @@ internal static void Initialize() { domain.AssemblyResolve += rhandler; Assembly[] items = domain.GetAssemblies(); - for (int i = 0; i < items.Length; i++) { - Assembly a = items[i]; - assemblies.Add(a); - ScanAssembly(a); + foreach (var a in items) + { + try + { + ScanAssembly(a); + assemblies.Add(a); + } + catch (Exception ex) + { + Debug.WriteLine($"Error scaning assembly {a}. {ex}"); + } } } @@ -316,9 +324,7 @@ internal static void ScanAssembly(Assembly assembly) { for (int n = 0; n < names.Length; n++) { s = (n == 0) ? names[0] : s + "." + names[n]; if (!namespaces.ContainsKey(s)) { - namespaces.Add(s, - new Dictionary() - ); + namespaces.Add(s, new Dictionary()); } } } From 2dc2622467c47d7f58f55a0c1201554f5163bd8d Mon Sep 17 00:00:00 2001 From: Daniel Santana Date: Thu, 7 Jan 2016 17:28:48 +0000 Subject: [PATCH 2/2] Removed dependency on C#6 --- src/runtime/assemblymanager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/assemblymanager.cs b/src/runtime/assemblymanager.cs index ad6c8363c..a217e84e2 100644 --- a/src/runtime/assemblymanager.cs +++ b/src/runtime/assemblymanager.cs @@ -67,7 +67,7 @@ internal static void Initialize() { } catch (Exception ex) { - Debug.WriteLine($"Error scaning assembly {a}. {ex}"); + Debug.WriteLine(string.Format("Error scanning assembly {0}. {1}", a, ex)); } } }