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();
            }
        }
    }
  • 相关阅读:
    GridView绑定模板格式化日期总结
    统计静态页点击量
    行业网seo诊断
    查看sql执行效率
    ItemCommandVSItemDataBound
    【转帖】我眼中的flash和silverlight
    修改SQLserver数据库中的a表的一列等于b表的一列
    过河卒
    最长公共子序列LCS
    情感日记:在中国地质大学的日子
  • 原文地址:https://www.cnblogs.com/ztcad/p/15174712.html
Copyright © 2011-2022 走看看