From e16aa29e676a27877b0fbcf6224ef977bba356dc Mon Sep 17 00:00:00 2001 From: Justin Kotalik <jukotali@microsoft.com> Date: Wed, 29 May 2019 12:47:17 -0700 Subject: [PATCH] Make new HttpContext properties virtual (#10613) --- .../Microsoft.AspNetCore.Http.Abstractions.netcoreapp3.0.cs | 6 +++--- src/Http/Http.Abstractions/src/HttpRequest.cs | 3 ++- src/Http/Http.Abstractions/src/HttpResponse.cs | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.netcoreapp3.0.cs b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.netcoreapp3.0.cs index cae69dd66c1..9dd9e019979 100644 --- a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.netcoreapp3.0.cs +++ b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.netcoreapp3.0.cs @@ -250,7 +250,7 @@ namespace Microsoft.AspNetCore.Http { protected HttpRequest() { } public abstract System.IO.Stream Body { get; set; } - public abstract System.IO.Pipelines.PipeReader BodyReader { get; set; } + public virtual System.IO.Pipelines.PipeReader BodyReader { get { throw null; } set { } } public abstract long? ContentLength { get; set; } public abstract string ContentType { get; set; } public abstract Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get; set; } @@ -274,7 +274,7 @@ namespace Microsoft.AspNetCore.Http { protected HttpResponse() { } public abstract System.IO.Stream Body { get; set; } - public abstract System.IO.Pipelines.PipeWriter BodyWriter { get; set; } + public virtual System.IO.Pipelines.PipeWriter BodyWriter { get { throw null; } set { } } public abstract long? ContentLength { get; set; } public abstract string ContentType { get; set; } public abstract Microsoft.AspNetCore.Http.IResponseCookies Cookies { get; } @@ -290,7 +290,7 @@ namespace Microsoft.AspNetCore.Http public abstract void Redirect(string location, bool permanent); public virtual void RegisterForDispose(System.IDisposable disposable) { } public virtual void RegisterForDisposeAsync(System.IAsyncDisposable disposable) { } - public abstract System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + public virtual System.Threading.Tasks.Task StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } public static partial class HttpResponseWritingExtensions { diff --git a/src/Http/Http.Abstractions/src/HttpRequest.cs b/src/Http/Http.Abstractions/src/HttpRequest.cs index 1163cbf52a2..a63438450b4 100644 --- a/src/Http/Http.Abstractions/src/HttpRequest.cs +++ b/src/Http/Http.Abstractions/src/HttpRequest.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.IO; using System.IO.Pipelines; using System.Threading; @@ -106,7 +107,7 @@ namespace Microsoft.AspNetCore.Http /// <summary> /// Gets or sets the request body pipe <see cref="PipeReader"/>. /// </summary> - public abstract PipeReader BodyReader { get; set; } + public virtual PipeReader BodyReader { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } /// <summary> /// Checks the Content-Type header for form types. diff --git a/src/Http/Http.Abstractions/src/HttpResponse.cs b/src/Http/Http.Abstractions/src/HttpResponse.cs index f38e953771c..d5a144dd7d8 100644 --- a/src/Http/Http.Abstractions/src/HttpResponse.cs +++ b/src/Http/Http.Abstractions/src/HttpResponse.cs @@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Http /// <summary> /// Gets or sets the response body pipe <see cref="PipeWriter"/> /// </summary> - public abstract PipeWriter BodyWriter { get; set; } + public virtual PipeWriter BodyWriter { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } /// <summary> /// Gets or sets the value for the <c>Content-Length</c> response header. @@ -129,6 +129,6 @@ namespace Microsoft.AspNetCore.Http /// <remarks> /// If the <see cref="IHttpResponseStartFeature"/> isn't set, StartAsync will default to calling HttpResponse.Body.FlushAsync(). /// </remarks> - public abstract Task StartAsync(CancellationToken cancellationToken = default); + public virtual Task StartAsync(CancellationToken cancellationToken = default) { throw new NotImplementedException(); } } } -- GitLab