在 ServiceStack 的元数据页面中反映 AbstractValidator 规则

Reflect AbstractValidator rules in ServiceStack's metadata page

假设您有以下简化的 CustomerRequest class:

public class CustomerRequest : IReturn<CustomerResponse>
{
    public string OrgNumber { get; set; }
}

对于此请求,您有以下验证器:

public CustomerValidator()
{
    RuleFor(r => r.OrgNumber).NotEmpty();
}

如果您在 http://[myService]/json/metadata?op=CustomerRequest 上查看 ServiceStack 自动生成的元数据页面,它将如下所示:

需要名称参数数据类型
OrgNumber 正文字符串 否

如您所见,参数被标记为 "Required: No",即使验证器要求它存在且不为空。

是否可以在元数据中自动反映验证者的规则?我知道我可以使用 [ApiMember(IsRequired = false)],但如果可能的话,我更愿意将它绑定到验证器。

只有声明性属性显示在元数据页面上,因为它们可以静态推断,任何在运行时注册的验证器都是不透明的,无法由 ServiceStack 静态推断。