public async Task InvokeAsync(HttpContext context) { string path = context.Request.Path; string verb = context.Request.Method; var(contractType, pParams) = routingMapper.GetMatchingContractType(path, verb); if (contractType == null) { context.Response.StatusCode = (int)HttpStatusCode.NotFound; return; } var(handler, mInfo) = handlerFactory.ResolveHandler(contractType); if (handler == null) { context.Response.StatusCode = (int)HttpStatusCode.NotImplemented; return; } //connemt this out and it will jsut return without deserialize and reserialize. var contract = contractInitializer.Instantiate(contractType, pParams, context); Task runHandler() => (Task)(mInfo?.Invoke(handler, new[] { contract })); var TResult = GetTaskResultType(mInfo); if (TResult == null) { await AwaitNoResponse(runHandler); return; } var resp = await AwaitUnserializedResponse(runHandler, TResult); //context.Response.Headers["Content-Type"] = "application/json"; context.Response.ContentType = "application/json"; WriteResponseToStream(context, resp); }