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 cae69dd66c1911c5f17afed60b652649c63dfc69..9dd9e019979b4f2b7846917efc2017e9fbf02251 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 1163cbf52a231680cf9fcd23d5db4187c86a8d95..a63438450b405c541ff6261cc3a24f73f8c9f72a 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 f38e953771c8aaedae810f41e09f17c7800e2608..d5a144dd7d87c93836343311cc2ea9d497a5072a 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(); } } }