• 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();
            }
        }
    }
  • 相关阅读:
    精品绿色便携软件下载站
    DIV + CSS
    CSS基础
    尘封往事
    最近ゲームにはまってる。
    比水更浓的水
    有些事我得记下来
    一年前的今晚,注定是个岔路口.
    放下全世界
    超级保镖:国外精品个人防火墙亲密接触(2) java程序员
  • 原文地址:https://www.cnblogs.com/ztcad/p/15174712.html
Copyright © 2020-2023  润新知