Use the new HttpContext.Features API.

This commit is contained in:
Chris R 2015-08-31 09:22:11 -07:00
parent 4aab903b18
commit 5a3418c2bd
2 changed files with 8 additions and 8 deletions

View File

@ -28,17 +28,17 @@ namespace Microsoft.AspNet.Buffering
return;
}
var originalBufferingFeature = httpContext.GetFeature<IHttpBufferingFeature>();
var originalSendFileFeature = httpContext.GetFeature<IHttpSendFileFeature>();
var originalBufferingFeature = httpContext.Features.Get<IHttpBufferingFeature>();
var originalSendFileFeature = httpContext.Features.Get<IHttpSendFileFeature>();
try
{
// Shim the response stream
var bufferStream = new BufferingWriteStream(originalResponseBody);
httpContext.Response.Body = bufferStream;
httpContext.SetFeature<IHttpBufferingFeature>(new HttpBufferingFeature(bufferStream, originalBufferingFeature));
httpContext.Features.Set<IHttpBufferingFeature>(new HttpBufferingFeature(bufferStream, originalBufferingFeature));
if (originalSendFileFeature != null)
{
httpContext.SetFeature<IHttpSendFileFeature>(new SendFileFeatureWrapper(originalSendFileFeature, bufferStream));
httpContext.Features.Set<IHttpSendFileFeature>(new SendFileFeatureWrapper(originalSendFileFeature, bufferStream));
}
await _next(httpContext);
@ -57,8 +57,8 @@ namespace Microsoft.AspNet.Buffering
finally
{
// undo everything
httpContext.SetFeature(originalBufferingFeature);
httpContext.SetFeature(originalSendFileFeature);
httpContext.Features.Set(originalBufferingFeature);
httpContext.Features.Set(originalSendFileFeature);
httpContext.Response.Body = originalResponseBody;
}
}

View File

@ -207,7 +207,7 @@ namespace Microsoft.AspNet.Buffering.Tests
Assert.False(context.Response.HasStarted);
Assert.True(context.Response.Body.CanSeek);
var bufferingFeature = context.GetFeature<IHttpBufferingFeature>();
var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
Assert.NotNull(bufferingFeature);
bufferingFeature.DisableResponseBuffering();
@ -244,7 +244,7 @@ namespace Microsoft.AspNet.Buffering.Tests
Assert.False(context.Response.HasStarted);
Assert.True(context.Response.Body.CanSeek);
var bufferingFeature = context.GetFeature<IHttpBufferingFeature>();
var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
Assert.NotNull(bufferingFeature);
bufferingFeature.DisableResponseBuffering();