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

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 正文字符串 否

如您所见,该参数被标记为“必需:否”,即使验证器要求它存在且不为空。

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

最佳答案

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

关于servicestack - 在 ServiceStack 的元数据页面中反射(reflect) AbstractValidator 规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41160165/

10-14 16:34