DelegatingHandler继承自HttpMessageHandler.但是,我不明白其中的区别,因为你必须实现相同的方法,SendAsync才能使两者都有效.
这两个处理程序有什么区别?我什么时候应该使用每一个?
解决方法
如果您熟悉ASP.NET,那么一个很好的类比将是HTTP处理程序和模块.如果实现HttpMessageHandler,则实现Send和SendAsync方法并返回响应的响应或承诺.这类似于Http处理程序.如果您实现了DelegatingHandler并将其添加到config.MessageHandlers集合中,那么您的类将在管道中运行,并且有机会查看请求和响应并做出反应,就像HTTP模块一样. DelegatingHandler也是一个HttpMessageHandler,除了作为SendAsync实现的一部分,它只调用内部处理程序的SendAsync.内部处理程序将执行相同的操作,您将获得中文框或俄罗斯玩偶效果.管道启动的HttpServer本身就是DelegatingHandler.