2009-09-15 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Tue, 15 Sep 2009 13:04:06 +0000 (13:04 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Tue, 15 Sep 2009 13:04:06 +0000 (13:04 -0000)
* TemplateParser.cs: FindNamespaceInAssembly must catch
ReflectionTypeLoadException so that it doesn't break on invalid
assemblies.

svn path=/trunk/mcs/; revision=141962

mcs/class/System.Web/System.Web.UI/ChangeLog
mcs/class/System.Web/System.Web.UI/TemplateParser.cs

index b61b1a328de742a831dad547d05bbefb50208c77..fa6b45d9050fe7898f8698ee7c34e7d66a866239 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-15  Marek Habersack  <mhabersack@novell.com>
+
+       * TemplateParser.cs: FindNamespaceInAssembly must catch
+       ReflectionTypeLoadException so that it doesn't break on invalid
+       assemblies.
+
 2009-08-24  Marek Habersack  <mhabersack@novell.com>
 
        * PageParser.cs: 2.0 profile takes advantage of the inputFile
index 01ddaec09d5117bc440fe38e994c2ddcc3164a2f..4c8f97a2511880c340a8448d50c144ff958b8739 100644 (file)
@@ -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);