diff --git a/src/Microsoft.AspNet.Mvc/DefaultControllerFactory.cs b/src/Microsoft.AspNet.Mvc/DefaultControllerFactory.cs index f55cea3a44..35e9d7c0c2 100644 --- a/src/Microsoft.AspNet.Mvc/DefaultControllerFactory.cs +++ b/src/Microsoft.AspNet.Mvc/DefaultControllerFactory.cs @@ -1,5 +1,7 @@ using System; +using System.Diagnostics; using System.Linq; +using System.Reflection; using Microsoft.AspNet.Abstractions; using Microsoft.AspNet.DependencyInjection; @@ -23,15 +25,26 @@ namespace Microsoft.AspNet.Mvc foreach (var a in AppDomain.CurrentDomain.GetAssemblies()) { - var type = a.GetType(controllerName) ?? - a.GetType(a.GetName().Name + "." + controllerName); + try + { + var type = a.GetType(controllerName) ?? + a.GetType(a.GetName().Name + "." + controllerName); #if NET45 - type = type ?? a.GetTypes().FirstOrDefault(t => t.Name.Equals(controllerName, StringComparison.OrdinalIgnoreCase)); + type = type ?? a.GetTypes().FirstOrDefault(t => t.Name.Equals(controllerName, StringComparison.OrdinalIgnoreCase)); #endif - if (type != null) + if (type != null) + { + return ActivatorUtilities.CreateInstance(_serviceProvider, type); + } + } + catch (ReflectionTypeLoadException) { - return ActivatorUtilities.CreateInstance(_serviceProvider, type); + // TODO: Trace here + } + catch (Exception) + { + // TODO: Trace here } }