[]
        
(Showing Draft Content)

命令的分组与排序

默认情况下,命令的分组是其他。



可以通过标注CategoryAttribute来自定义分组。

    [Category("我的分组")]
    public class MyPluginCommand : Command
    {
    }

效果如下:



如果分组名与既有的分组名一致,会加到已有的组里。

    [Category("数据库")]
    public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
    {
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            return new ExecuteResult();
        }
        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }

效果如下:



如果有多个插件,在同一分组,可以通过OrderWeightAttribute标注排序权重。

    [OrderWeight(1)]
    [Category("我的分组")]
    public class MyPluginServerCommand1 : Command, ICommandExecutableInServerSideAsync
    {
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            return new ExecuteResult();
        }
        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }
    [OrderWeight(2)]
    [Category("我的分组")]
    public class MyPluginServerCommand2 : Command, ICommandExecutableInServerSideAsync
    {
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            return new ExecuteResult();
        }
        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }
    [OrderWeight(3)]
    [Category("我的分组")]
    public class MyPluginServerCommand3 : Command, ICommandExecutableInServerSideAsync
    {
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            return new ExecuteResult();
        }
        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }

设计器效果: