[]
给属性添加校验,可以避免用户填写不支持的数据,减少开发不必要的错误处理逻辑。
属性必填
通过标注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;
}
}
}
效果:
校验长度
通过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;
}
}
}
效果: