void RegisterLibrary(AssemblyResolver resolver, Hashtable visited, WidgetLibrary lib)
{
if (lib == null || visited.Contains(lib.Name))
{
return;
}
visited [lib.Name] = lib;
foreach (string s in lib.GetLibraryDependencies())
{
if (!Application.InternalIsWidgetLibrary(resolver, s))
{
continue;
}
AddLibrary(resolver, visited, s);
}
try {
Registry.RegisterWidgetLibrary(lib);
} catch (Exception ex) {
// Catch errors when loading a library to avoid aborting
// the whole update method. After all, that's not a fatal
// error (some widgets just won't be shown).
// FIXME: return the error somewhere
Console.WriteLine(ex);
}
}