/// <summary>Load utility add-ins</summary> public void LoadUtilityAddins() { Mono.Addins.ExtensionNodeList nodes = Mono.Addins.AddinManager.GetExtensionNodes(ExtensionPath.Utility); foreach (Mono.Addins.ExtensionNode node in nodes) { Mono.Addins.TypeExtensionNode typeNode = node as Mono.Addins.TypeExtensionNode; try { UtilityAddin utility = typeNode.CreateInstance() as UtilityAddin; LoadUtilityAddin(utility, typeNode.Id, typeNode.TypeName); } catch (Exception ex) { Log.Error("Couldn't create UtilityAddin: " + ex.Message); } } }
/// <summary> /// Load UtilityAddin and store in memory /// </summary> /// <param name="addin"></param> private void LoadUtilityAddin(UtilityAddin addin, string addinId, string addinTypeName) { try { // Removed for now until needed // addin.Initialize(); // TODO: Add add-in to managed list for later callings if (addin.IsInitialized) { addin.Execute(); } else { Log.Debug("Add-in not initialized; not executing."); } } catch (Exception ex) { Log.Error($"Error while attempting to initialize UtilityAddin, Id: '{addinId}', TypeName: '{addinTypeName}': {ex.Message}"); } }