internal void Initialize(ShellPackage shellPackage, ShellAddInHandler shellAddInHandler) { if (IsInitialized) { Shutdown(); } this.shellPackage = shellPackage; this.shellAddInHandler = shellAddInHandler; logger = new ShellLogger(shellPackage); runtime.AddLogListener(logger); foreach (var extensionHandle in extensionHandles) { try { extensionHandle.GetComponent().Initialize(); } catch (Exception ex) { logger.Log(LogSeverity.Error, string.Format("Failed to initialize shell extension '{0}'.", extensionHandle.Id), ex); } } }