4

我正在查看,AppHostBase.cs它具有以下内容:

//....
public IContentTypeFilter ContentTypeFilters {
    get {return EndpointHost.ContentTypeFilter;}
}
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters {
    get {return EndpointHost.RawRequestFilters;}
}
public List<Action<IHttpRequest, IHttpResponse, object>> RequestFilters {
    get {return EndpointHost.RequestFilters;}
}   
public List<Action<IHttpRequest, IHttpResponse, object>> ResponseFilters {
    get {return EndpointHost.ResponseFilters;}
}
//....

我从 SS 网站文档中阅读并知道什么是RequestFiltersand ResponseFilters。但为什么会有一个PreRequestFilter分开的RequestFilters?它是干什么用的?

我google了一下,看到一个SignalR代码的例子写在PreRequestFilters为什么不直接写有RequestFilters什么区别?

4

1 回答 1

5

根据操作顺序,在 DTO 反序列化之前执行 Pre-Request Filters,之后执行常规 RequestFilters。另请注意,请求过滤器以特定顺序执行,具体取决于它们是作为属性实现还是通过 AppHost 注册,并且还基于请求过滤器属性的优先级。

于 2013-09-10T14:18:24.120 回答