From 6258a69b0dba6cdf601a84b568195974527a2c32 Mon Sep 17 00:00:00 2001 From: Jni Date: Wed, 28 Aug 2013 12:48:02 -0400 Subject: [PATCH] Error handling while loading types from assembly --- src/RouteJs.Mvc4/MvcRouteFilter.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/RouteJs.Mvc4/MvcRouteFilter.cs b/src/RouteJs.Mvc4/MvcRouteFilter.cs index 8b6d4a9..a42dd17 100644 --- a/src/RouteJs.Mvc4/MvcRouteFilter.cs +++ b/src/RouteJs.Mvc4/MvcRouteFilter.cs @@ -3,6 +3,7 @@ using System.Web.Mvc; using System.Web.Routing; using System.Linq; +using System.Reflection; namespace RouteJs.Mvc { @@ -61,7 +62,7 @@ private void BuildLists() { // Get all the controllers from all loaded assemblies var controllers = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(assembly => assembly.GetTypes()) + .SelectMany(GetTypesFromAssembly) .Where(type => type.IsSubclassOf(typeof(Controller))) .ToList(); @@ -81,6 +82,18 @@ private void BuildLists() } } } + + private IEnumerable GetTypesFromAssembly(Assembly assembly) + { + try + { + return assembly.GetTypes(); + } + catch (ReflectionTypeLoadException) + { + return new Type[] { }; + } + } /// /// Gets a mapping of namespace prefix to area name