* Mono.Documentation/XmlDocUtils.cs: GetInterfaces() can throw if the
authorJonathan Pryor <jpryor@novell.com>
Fri, 2 Oct 2009 20:21:24 +0000 (20:21 -0000)
committerJonathan Pryor <jpryor@novell.com>
Fri, 2 Oct 2009 20:21:24 +0000 (20:21 -0000)
  type we're trying to load can't be found (e.g. if a type implements
  an internal interface, there won't be an XML file for that internal
  interface).  Ignore the exception.

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

mcs/tools/monodoc/ChangeLog
mcs/tools/monodoc/Mono.Documentation/XmlDocUtils.cs

index e90d919e8a0359b3413b56c33ed2745c6f4b2a87..af70ea59f47aa8d05e509288380a3d468f791617 100644 (file)
@@ -1,3 +1,10 @@
+2009-10-02  Jonathan Pryor  <jpryor@novell.com>
+
+       * Mono.Documentation/XmlDocUtils.cs: GetInterfaces() can throw if the
+         type we're trying to load can't be found (e.g. if a type implements
+         an internal interface, there won't be an XML file for that internal
+         interface).  Ignore the exception.
+
 2009-09-25  Jonathan Pryor  <jpryor@novell.com>
 
        * Monodoc/ecma-provider.cs: Don't return 'null' from GetPublicUrl(),
index e8ed6df838738dd9ba82257ac94a7abb16e65ceb..e8fec9a7ae6ce8a8829a0e430a01b57c445516d9 100644 (file)
@@ -167,9 +167,14 @@ namespace Mono.Documentation {
                                string tk = "T:" + t;
                                if (!ifaces.ContainsKey (tk)) {
                                        ifaces.Add (tk, null);
-                                       XmlDocument d = loader (t);
-                                       if (d != null)
-                                               GetInterfaces (ifaces, d, loader);
+                                       try {
+                                               XmlDocument d = loader (t);
+                                               if (d != null)
+                                                       GetInterfaces (ifaces, d, loader);
+                                       }
+                                       catch (FileNotFoundException e) {
+                                               // ignore; interface documentation couldn't be found.
+                                       }
                                }
                        }
                }