コード例 #1
0
ファイル: Addin.cs プロジェクト: jingyiliu/JointCode.AddIns
        bool StopThisAddin()
        {
            if (!_started)
            {
                return(true);
            }

            try
            {
                OnAddinStatusChanged(AddinStatus.Stopping);
                // if there is any extension points has been loaded for which this addin extends, unloads the extension builders and extensions of this addin [addinRecord]
                // that extending the extension point.
                _addinEngine.UnloadFromLoadedExtensionPoints(_addinContext);
                // unload extension points of this addin, if it's loaded.
                _addinExtension.UnloadExtensionPoints();
                // deactivate the addin.
                DeactivateThisAddin();
                OnAddinStatusChanged(AddinStatus.Stopped);
                // unregister all assemblies of this addin from the assembly resolver.
                _addinRuntime.UnregisterAssemblies();
                _started = false;

                return(true);
            }
            catch (Exception e)
            {
                // log, show message, ...
                throw;
            }
        }