首页 > 其他 > 详细

AutoCAD快速开发框架之插件Plugin

时间:2021-08-23 11:02:04      阅读:17      评论:0      收藏:0      [点我收藏+]

插件模块的结构图如下:

技术分享图片

 插件模块通过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();
        }
    }
}

 

AutoCAD快速开发框架之插件Plugin

原文:https://www.cnblogs.com/ztcad/p/15174712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!