zoukankan      html  css  js  c++  java
  • WebApi HttpMsgHanler的执行顺序

    原来忘记在哪个大牛的博客上看到的,说添加顺序与执行顺序是相反的,事实在下边:直接上代码:

    //STEP10,不论如何先记录下来请求信息
                if (msgHandlerSettings.LoggingHandlerConfig.Enable)
                {
                    config.MessageHandlers.Add(new LoggingHandler(
                        _CreateInstance(msgHandlerSettings.LoggingHandlerConfig.LoggingRepositoryType) as ILoggingRepository));
                }
    
                //STEP11,检查数据在传输过程中是否被篡改
                if (msgHandlerSettings.SignHandlerConfig.Enable)
                {
                    config.MessageHandlers.Add(new SignHandler());
                }
    
                //STEP12,请求数据转化成标准JSON格式
                if (msgHandlerSettings.ContentParserHandlerConfig.Enable)
                {
                    config.MessageHandlers.Add(new ContentParserHandler(
                         _CreateInstance(msgHandlerSettings.ContentParserHandlerConfig.ContentParserType) as IContentParser));
                }
    View Code

    程序输出:

    Req___LoggingHandler Begin
    Req___LoggingHandler End
    Req___SignHandler Begin
    Req___SignHandler End
    Req___ContentParserHandler Begin
    Req___ContentParserHandler End
    ..............................................................
    Res___ContentParserHandler Begin
    Res___ContentParserHandler End
    Res___SignHandler Begin
    Res___SignHandler End
    Res___LoggingHandler Begin
    Res___LoggingHandler End
    线程 '<无名称>' (0x1cf0) 已退出,返回值为 0 (0x0)。
    程序“[1420] iisexpress.exe: 托管(v4.0.30319)”已退出,返回值为 0 (0x0)。
    程序“[1420] iisexpress.exe: 程序跟踪”已退出,返回值为 0 (0x0)。

  • 相关阅读:
    cefsharp设置默认语言
    C#创建委托实例
    C++/C#互调步骤
    mybatis别名
    redis
    数据库优化方面的事情:
    Properties类使用详解
    七层协议以及如何很好得记忆
    Http 请求到后端过程
    【转】那些年用过的Redis集群架构(含面试解析)
  • 原文地址:https://www.cnblogs.com/smlheart/p/3585947.html
Copyright © 2011-2022 走看看