From: Marek Habersack Date: Tue, 15 Sep 2009 13:04:06 +0000 (-0000) Subject: 2009-09-15 Marek Habersack X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=7c2b88b9fe481029a3fbdf34b835b2e6648532f4;p=mono.git 2009-09-15 Marek Habersack * TemplateParser.cs: FindNamespaceInAssembly must catch ReflectionTypeLoadException so that it doesn't break on invalid assemblies. svn path=/trunk/mcs/; revision=141962 --- diff --git a/mcs/class/System.Web/System.Web.UI/ChangeLog b/mcs/class/System.Web/System.Web.UI/ChangeLog index b61b1a328de..fa6b45d9050 100644 --- a/mcs/class/System.Web/System.Web.UI/ChangeLog +++ b/mcs/class/System.Web/System.Web.UI/ChangeLog @@ -1,3 +1,9 @@ +2009-09-15 Marek Habersack + + * TemplateParser.cs: FindNamespaceInAssembly must catch + ReflectionTypeLoadException so that it doesn't break on invalid + assemblies. + 2009-08-24 Marek Habersack * PageParser.cs: 2.0 profile takes advantage of the inputFile diff --git a/mcs/class/System.Web/System.Web.UI/TemplateParser.cs b/mcs/class/System.Web/System.Web.UI/TemplateParser.cs index 01ddaec09d5..4c8f97a2511 100644 --- a/mcs/class/System.Web/System.Web.UI/TemplateParser.cs +++ b/mcs/class/System.Web/System.Web.UI/TemplateParser.cs @@ -620,7 +620,16 @@ namespace System.Web.UI { bool FindNamespaceInAssembly (Assembly asm, string namesp) { - foreach (Type type in asm.GetTypes ()) { + Type[] asmTypes; + + try { + asmTypes = asm.GetTypes (); + } catch (ReflectionTypeLoadException) { + // ignore + return false; + } + + foreach (Type type in asmTypes) { if (String.Compare (type.Namespace, namesp, StringComparison.Ordinal) == 0) { namespacesCache.Add (namesp, true); AddAssembly (asm, true);