我们有一些请求过滤器,并且还利用了验证功能。
[AttributeUsage(AttributeTargets.Method, Inherited = true)]
public class MyFilterAttribute : Attribute, IHasRequestFilter
{
...
}
在 AppHost 中:
public override void Configure(Container container)
{
....
Plugins.Add(new ValidationFeature());
....
}
我需要在请求过滤器之后运行流畅的验证,因为某些过滤器会将数据添加到随后进行验证的 dto 中。我见过Order of Operations但这并没有说明验证的适用范围......至少我没有看到。
如有任何帮助,我们将不胜感激。
最佳答案
ValidationFeature像ServiceStack中的大多数东西一样只是一个简单的Plugin通过访问 ServiceStack GitHub repo 可以轻松找到其源代码按“T”激活GitHub's find files功能并开始输入部分类名,例如 VFe
将带来ValidationFeature直到第一个结果。
ValidationFeature内你可以在IPlugin.Register(IAppHost)
中看到介绍其工作原理:
public void Register(IAppHost appHost)
{
if(!appHost.RequestFilters.Contains(ValidationFilters.RequestFilter))
appHost.RequestFilters.Add(ValidationFilters.RequestFilter);
}
如上所示,仅注册了 Global Request Filter 。 Order of Operations指出全局请求过滤器在 Filter Attributes 之后执行优先<0
并在具有优先级的过滤属性之前 >=0
.
关于c# - Servicestack - 操作顺序 Fluent 验证和请求过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15894810/