public RequestProcTimeMiddleware(OwinMiddleware next, RequestProcTimeOption requestProcTimeOption = null)
     : base(next)
 {
     _next = next;
     //第一个参数是固定的,后边还可以添加自定义的其它参数
     _requestProcTimeOption = requestProcTimeOption;
 }
 public void ConfigureRequestProcTime(IAppBuilder app)
 {
     RequestProcTimeOption requestProcTimeOption = new RequestProcTimeOption();
     requestProcTimeOption.RequestProcTimeAction = (data) =>
     {
         var messageInfo = new MessageInfo();
         messageInfo.Message = "请求时间日志";
         messageInfo.Body = data;
         messageInfo.Action = (messageData) =>
         {
             var bodyData = messageData.Body as RequestProcData;
             if (bodyData == null) return;
             //var requestProcTimeLog = new RequestProcTimeLog
             //{
             //    BeginRequestDateTime = bodyData.BeginRequestDateTime,
             //    EndRequestDateTime = bodyData.EndRequestDateTime,
             //    RequestIp = bodyData.RequestIp,
             //    RequestResponseInterval = bodyData.RequestResponseInterval,
             //    RequestUrl = bodyData.RequestUrl
             //};
             var requestProcTimeLog = Mapper.MapNew<RequestProcData, RequestProcTimeLog>(bodyData);
             var mongoDbRepository = new MongoDBRepository<RequestProcTimeLog>();
             mongoDbRepository.Insert(requestProcTimeLog);
         };
         QueueManagement.getInstance().PushData(messageInfo);
     };
     app.UseRequestProcTime(requestProcTimeOption);
 }
 /// <summary>
 /// 请求处理时间
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="requestProcTimeOption">请求处理时间选项</param>
 /// <returns></returns>
 public static IAppBuilder UseRequestProcTime(this IAppBuilder builder,
     RequestProcTimeOption requestProcTimeOption=null)
 {
     return builder.Use<RequestProcTimeMiddleware>(requestProcTimeOption);
 }