From 46f2390e62cb0bd2fcbeaad64e81fbef888fdd6f Mon Sep 17 00:00:00 2001 From: Khalid Abuhakmeh Date: Mon, 23 Apr 2018 13:52:17 -0400 Subject: [PATCH 1/2] Move PushStreamContent Namespace Previous behavior caused issues of mbiguous reference around PushStreamContent when both Refit and System.Net.Http.Formatting are included in a project. This is essentially a show stopper to upgrading to the latest Refit. The solution is to change the internal implementation of PushStreamContent namespace from System.Net.Http -> Refit.Net.Http and to update the usages internally. Note this may be a breaking change to those who have taken a dependency on PushStreamContent in their own projects from the Refit assemblies. --- Refit/PushStreamContent.cs | 4 +++- Refit/RequestBuilderImplementation.cs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Refit/PushStreamContent.cs b/Refit/PushStreamContent.cs index 7a41bf23b..278d587be 100644 --- a/Refit/PushStreamContent.cs +++ b/Refit/PushStreamContent.cs @@ -23,11 +23,13 @@ using System.Diagnostics.CodeAnalysis; using System.Diagnostics.Contracts; using System.IO; +using System.Net; using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; +using System.Net.Http; -namespace System.Net.Http +namespace Refit.Net.Http { /// /// Provides an implementation that exposes an output diff --git a/Refit/RequestBuilderImplementation.cs b/Refit/RequestBuilderImplementation.cs index a36a4e1cc..8ef452c1e 100644 --- a/Refit/RequestBuilderImplementation.cs +++ b/Refit/RequestBuilderImplementation.cs @@ -13,6 +13,7 @@ using Newtonsoft.Json; using System.Collections.Concurrent; using System.Net.Http.Headers; +using Refit.Net.Http; namespace Refit { From bfaf56d6a503faa910df0c331a23668a5df25fbe Mon Sep 17 00:00:00 2001 From: Oren Novotny Date: Mon, 14 May 2018 20:13:23 -0400 Subject: [PATCH 2/2] Make types internal --- Refit.Tests/RefitStubs.Net46.cs | 12 ++++++++++-- Refit.Tests/RefitStubs.NetCore2.cs | 12 ++++++++++-- Refit/PushStreamContent.cs | 6 +++--- Refit/RequestBuilderImplementation.cs | 1 - 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Refit.Tests/RefitStubs.Net46.cs b/Refit.Tests/RefitStubs.Net46.cs index 056126908..1fe312742 100644 --- a/Refit.Tests/RefitStubs.Net46.cs +++ b/Refit.Tests/RefitStubs.Net46.cs @@ -391,11 +391,19 @@ public virtual IObservable GetIndexObservable() } /// - public virtual Task NothingToSeeHere() + public virtual Task NothingToSeeHere() { var arguments = new object[] { }; var func = methodImpls.GetOrAdd("NothingToSeeHere()", _ => requestBuilder.BuildRestResultFuncForMethod("NothingToSeeHere", new Type[] { })); - return (Task)func(Client, arguments); + return (Task)func(Client, arguments); + } + + /// + public virtual Task> NothingToSeeHereWithMetadata() + { + var arguments = new object[] { }; + var func = methodImpls.GetOrAdd("NothingToSeeHereWithMetadata()", _ => requestBuilder.BuildRestResultFuncForMethod("NothingToSeeHereWithMetadata", new Type[] { })); + return (Task>)func(Client, arguments); } /// diff --git a/Refit.Tests/RefitStubs.NetCore2.cs b/Refit.Tests/RefitStubs.NetCore2.cs index 056126908..1fe312742 100644 --- a/Refit.Tests/RefitStubs.NetCore2.cs +++ b/Refit.Tests/RefitStubs.NetCore2.cs @@ -391,11 +391,19 @@ public virtual IObservable GetIndexObservable() } /// - public virtual Task NothingToSeeHere() + public virtual Task NothingToSeeHere() { var arguments = new object[] { }; var func = methodImpls.GetOrAdd("NothingToSeeHere()", _ => requestBuilder.BuildRestResultFuncForMethod("NothingToSeeHere", new Type[] { })); - return (Task)func(Client, arguments); + return (Task)func(Client, arguments); + } + + /// + public virtual Task> NothingToSeeHereWithMetadata() + { + var arguments = new object[] { }; + var func = methodImpls.GetOrAdd("NothingToSeeHereWithMetadata()", _ => requestBuilder.BuildRestResultFuncForMethod("NothingToSeeHereWithMetadata", new Type[] { })); + return (Task>)func(Client, arguments); } /// diff --git a/Refit/PushStreamContent.cs b/Refit/PushStreamContent.cs index 278d587be..b60e18fce 100644 --- a/Refit/PushStreamContent.cs +++ b/Refit/PushStreamContent.cs @@ -29,7 +29,7 @@ using System.Threading.Tasks; using System.Net.Http; -namespace Refit.Net.Http +namespace System.Net.Http { /// /// Provides an implementation that exposes an output @@ -38,7 +38,7 @@ namespace Refit.Net.Http /// // https://github.com/ASP-NET-MVC/aspnetwebstack/blob/d5188c8a75b5b26b09ab89bedfd7ee635ae2ff17/src/System.Net.Http.Formatting/PushStreamContent.cs [ExcludeFromCodeCoverage] - public class PushStreamContent : HttpContent + class PushStreamContent : HttpContent { private readonly Func _onStreamAvailable; @@ -184,7 +184,7 @@ protected override void Dispose(bool disposing) /// // https://github.com/ASP-NET-MVC/aspnetwebstack/blob/d5188c8a75b5b26b09ab89bedfd7ee635ae2ff17/src/System.Net.Http.Formatting/Internal/DelegatingStream.cs [ExcludeFromCodeCoverage] - internal abstract class DelegatingStream : Stream + abstract class DelegatingStream : Stream { Stream innerStream; diff --git a/Refit/RequestBuilderImplementation.cs b/Refit/RequestBuilderImplementation.cs index b9d22779d..1c2c398bc 100644 --- a/Refit/RequestBuilderImplementation.cs +++ b/Refit/RequestBuilderImplementation.cs @@ -13,7 +13,6 @@ using Newtonsoft.Json; using System.Collections.Concurrent; using System.Net.Http.Headers; -using Refit.Net.Http; namespace Refit {