zoukankan      html  css  js  c++  java
  • AutoCAD快速开发框架之插件Plugin

    插件模块的结构图如下:

     插件模块通过LicensableModuleAttribute标记插件需要授权才能使用,通过重载CheckLicense函数验证授权,通过重载Install和Uninstall函数实现加载、卸载时的自定义操作。

    PluginManager实现插件的管理,PluginFinder实现插件的查找。

    // 2021-08-23 by www.cnblogs.com/ztcad
    namespace ztcad.ThCad
    {
        [LicensableModule]
        public class Plugin : BasePlugin
        {
            private readonly ILogger _logger;
            private readonly ISettingService _settingService;
    
            /// <summary>
            /// Ctor
            /// </summary>
            /// <param name="logger">Logger</param>
            /// <param name="settingService">Settings service</param>
            public Plugin(ILogger logger,
               ISettingService settingService)
            {
                this._logger = logger;
                this._settingService = settingService;
            }
    
            public static string SystemName
            {
                get
                {
                    return "ztcad.ThCad";
                }
            }
    
            public override bool CheckLicense()
            {
                return true;
            }
    
            /// <summary>
            /// Install the plugin
            /// </summary>
            public override void Install()
            {
                var settings = new ThCadSettings();
                _settingService.SaveSetting(settings);
    
                base.Install();
    
                _logger.Info(string.Format("Plugin installed: SystemName: {0}, Version: {1}, Description: '{2}'", PluginDescriptor.SystemName, PluginDescriptor.Version, PluginDescriptor.FriendlyName));
            }
    
            /// <summary>
            /// Uninstall the plugin
            /// </summary>
            public override void Uninstall()
            {
                _settingService.DeleteSetting<ThCadSettings>();
    
                base.Uninstall();
            }
        }
    }
  • 相关阅读:
    VIM移动
    坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融
    2016MBA排名
    禅道行任务分解
    oracle教程:PLSQL常用方法汇总
    国内手机号码段,卫星电话号段
    Java异常处理和设计
    购买使用Linode VPS必须知晓的十个问题
    从配置文件中删除节点
    remove namespace from xml config file
  • 原文地址:https://www.cnblogs.com/ztcad/p/15174712.html
Copyright © 2011-2022 走看看