[]
        
(Showing Draft Content)

属性校验

给属性添加校验,可以避免用户填写不支持的数据,减少开发不必要的错误处理逻辑。


属性必填

  1. 通过标注RequiredAttitude支持属性必填。

    using GrapeCity.Forguncy.Commands;
    using GrapeCity.Forguncy.Plugin;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Threading.Tasks;
    
    namespace MyPlugin
    {
        [Icon("pack://application:,,,/MyPlugin;component/Resources/Icon.png")]
        [Designer("MyPlugin.Designer.MyPluginServerCommandDesigner, MyPlugin")]
        public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
        {
            [Required]
            public string Name { get; set; }
    
            public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
            {
                return new ExecuteResult();
            }
            public override CommandScope GetCommandScope()
            {
                return CommandScope.ExecutableInServer;
            }
        }
    }
  2. 效果:


校验长度

  1. 通过MaxLengthAttribute和MinLengthAttribute支持长度校验。

    using GrapeCity.Forguncy.Commands;
    using GrapeCity.Forguncy.Plugin;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Threading.Tasks;
    
    namespace MyPlugin
    {
        [Icon("pack://application:,,,/MyPlugin;component/Resources/Icon.png")]
        [Designer("MyPlugin.Designer.MyPluginServerCommandDesigner, MyPlugin")]
        public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
        {
            [MaxLength(6)]
            [MinLength(1)]
            public string Name { get; set; }
    
            public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
            {
                return new ExecuteResult();
            }
            public override CommandScope GetCommandScope()
            {
                return CommandScope.ExecutableInServer;
            }
        }
    }
  2. 效果: