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); } }
void CheckDependencies(AssemblyResolver resolver, Hashtable visited, WidgetLibrary lib) { if (visited.Contains(lib.Name) || lib.Name == coreLibrary) { return; } visited [lib.Name] = lib; foreach (string dep in lib.GetLibraryDependencies()) { WidgetLibrary depLib = Registry.GetWidgetLibrary(dep); if (depLib == null) { AddLibrary(resolver, visited, dep); } else { CheckDependencies(resolver, visited, depLib); } } }
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); } }
void CheckDependencies(AssemblyResolver resolver, Hashtable visited, WidgetLibrary lib) { if (visited.Contains (lib.Name)) return; visited [lib.Name] = lib; foreach (string dep in lib.GetLibraryDependencies ()) { WidgetLibrary depLib = Registry.GetWidgetLibrary (dep); if (depLib == null) AddLibrary (resolver, visited, dep); else CheckDependencies (resolver, visited, depLib); } }