/// <summary> /// Initializes a new instance of the <see cref="OwinHttpListenerResponse"/> class. /// Sets up the Environment with the necessary request state items. /// </summary> internal OwinHttpListenerResponse(HttpListenerContext context, CallEnvironment environment) { Contract.Requires(context != null); Contract.Requires(environment != null); _context = context; _response = _context.Response; _environment = environment; _requestState = RequestInProgress; var outputStream = new HttpListenerStreamWrapper(_response.OutputStream); outputStream.OnFirstWrite = ResponseBodyStarted; _environment.ResponseBody = outputStream; _environment.ResponseHeaders = new ResponseHeadersDictionary(_response); _onSendingHeadersActions = new List<Tuple<Action<object>, object>>(); _environment.OnSendingHeaders = RegisterForOnSendingHeaders; }
/// <summary> /// Initializes a new instance of the <see cref="OwinHttpListenerResponse"/> class. /// Sets up the Environment with the necessary request state items. /// </summary> internal OwinHttpListenerResponse(HttpListenerContext context, CallEnvironment environment) { Contract.Requires(context != null); Contract.Requires(environment != null); _context = context; _response = _context.Response; _environment = environment; _requestState = RequestInProgress; // Provide the default status code for consistency with SystemWeb, even though it's optional. _environment.ResponseStatusCode = (int)HttpStatusCode.OK; // 200 var outputStream = new HttpListenerStreamWrapper(_response.OutputStream); outputStream.OnFirstWrite(_responseBodyStarted, this); _environment.ResponseBody = outputStream; _environment.ResponseHeaders = new ResponseHeadersDictionary(_response); _onSendingHeadersActions = new List<Tuple<Action<object>, object>>(); _environment.OnSendingHeaders = RegisterForOnSendingHeaders; }