Use the new HttpContext.Features API.
This commit is contained in:
parent
4aab903b18
commit
5a3418c2bd
|
|
@ -28,17 +28,17 @@ namespace Microsoft.AspNet.Buffering
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var originalBufferingFeature = httpContext.GetFeature<IHttpBufferingFeature>();
|
var originalBufferingFeature = httpContext.Features.Get<IHttpBufferingFeature>();
|
||||||
var originalSendFileFeature = httpContext.GetFeature<IHttpSendFileFeature>();
|
var originalSendFileFeature = httpContext.Features.Get<IHttpSendFileFeature>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Shim the response stream
|
// Shim the response stream
|
||||||
var bufferStream = new BufferingWriteStream(originalResponseBody);
|
var bufferStream = new BufferingWriteStream(originalResponseBody);
|
||||||
httpContext.Response.Body = bufferStream;
|
httpContext.Response.Body = bufferStream;
|
||||||
httpContext.SetFeature<IHttpBufferingFeature>(new HttpBufferingFeature(bufferStream, originalBufferingFeature));
|
httpContext.Features.Set<IHttpBufferingFeature>(new HttpBufferingFeature(bufferStream, originalBufferingFeature));
|
||||||
if (originalSendFileFeature != null)
|
if (originalSendFileFeature != null)
|
||||||
{
|
{
|
||||||
httpContext.SetFeature<IHttpSendFileFeature>(new SendFileFeatureWrapper(originalSendFileFeature, bufferStream));
|
httpContext.Features.Set<IHttpSendFileFeature>(new SendFileFeatureWrapper(originalSendFileFeature, bufferStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
await _next(httpContext);
|
await _next(httpContext);
|
||||||
|
|
@ -57,8 +57,8 @@ namespace Microsoft.AspNet.Buffering
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
// undo everything
|
// undo everything
|
||||||
httpContext.SetFeature(originalBufferingFeature);
|
httpContext.Features.Set(originalBufferingFeature);
|
||||||
httpContext.SetFeature(originalSendFileFeature);
|
httpContext.Features.Set(originalSendFileFeature);
|
||||||
httpContext.Response.Body = originalResponseBody;
|
httpContext.Response.Body = originalResponseBody;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,7 @@ namespace Microsoft.AspNet.Buffering.Tests
|
||||||
Assert.False(context.Response.HasStarted);
|
Assert.False(context.Response.HasStarted);
|
||||||
Assert.True(context.Response.Body.CanSeek);
|
Assert.True(context.Response.Body.CanSeek);
|
||||||
|
|
||||||
var bufferingFeature = context.GetFeature<IHttpBufferingFeature>();
|
var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
|
||||||
Assert.NotNull(bufferingFeature);
|
Assert.NotNull(bufferingFeature);
|
||||||
bufferingFeature.DisableResponseBuffering();
|
bufferingFeature.DisableResponseBuffering();
|
||||||
|
|
||||||
|
|
@ -244,7 +244,7 @@ namespace Microsoft.AspNet.Buffering.Tests
|
||||||
Assert.False(context.Response.HasStarted);
|
Assert.False(context.Response.HasStarted);
|
||||||
Assert.True(context.Response.Body.CanSeek);
|
Assert.True(context.Response.Body.CanSeek);
|
||||||
|
|
||||||
var bufferingFeature = context.GetFeature<IHttpBufferingFeature>();
|
var bufferingFeature = context.Features.Get<IHttpBufferingFeature>();
|
||||||
Assert.NotNull(bufferingFeature);
|
Assert.NotNull(bufferingFeature);
|
||||||
bufferingFeature.DisableResponseBuffering();
|
bufferingFeature.DisableResponseBuffering();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue