diff --git a/examples/csharp/Helloworld/Greeter/Greeter.csproj b/examples/csharp/Helloworld/Greeter/Greeter.csproj
index 7989f795418..223b7fe1242 100644
--- a/examples/csharp/Helloworld/Greeter/Greeter.csproj
+++ b/examples/csharp/Helloworld/Greeter/Greeter.csproj
@@ -5,9 +5,9 @@
-
-
-
+
+
+
diff --git a/examples/csharp/HelloworldLegacyCsproj/Greeter/Greeter.csproj b/examples/csharp/HelloworldLegacyCsproj/Greeter/Greeter.csproj
index da15ba3954b..adb2c7ac2c9 100644
--- a/examples/csharp/HelloworldLegacyCsproj/Greeter/Greeter.csproj
+++ b/examples/csharp/HelloworldLegacyCsproj/Greeter/Greeter.csproj
@@ -1,4 +1,4 @@
-
+
@@ -33,18 +33,26 @@
false
-
- ..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll
+
+ ..\packages\Google.Protobuf.3.8.0\lib\net45\Google.Protobuf.dll
-
- ..\packages\Grpc.Core.1.17.0\lib\net45\Grpc.Core.dll
+
+ ..\packages\Grpc.Core.2.23.0\lib\net45\Grpc.Core.dll
+
+
+ ..\packages\Grpc.Core.Api.2.23.0\lib\net45\Grpc.Core.Api.dll
-
- ..\packages\System.Interactive.Async.3.1.1\lib\net45\System.Interactive.Async.dll
- True
+
+ ..\packages\System.Buffers.4.4.0\lib\netstandard1.1\System.Buffers.dll
+
+ ..\packages\System.Memory.4.5.3\lib\netstandard1.1\System.Memory.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll
+
@@ -57,14 +65,14 @@
-
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
-
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldLegacyCsproj/Greeter/packages.config b/examples/csharp/HelloworldLegacyCsproj/Greeter/packages.config
index 154b5993213..418bfaba736 100644
--- a/examples/csharp/HelloworldLegacyCsproj/Greeter/packages.config
+++ b/examples/csharp/HelloworldLegacyCsproj/Greeter/packages.config
@@ -1,8 +1,11 @@
-
+
-
-
-
+
+
+
+
-
-
+
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldLegacyCsproj/GreeterClient/GreeterClient.csproj b/examples/csharp/HelloworldLegacyCsproj/GreeterClient/GreeterClient.csproj
index 31a3a90345b..ec860440cfb 100644
--- a/examples/csharp/HelloworldLegacyCsproj/GreeterClient/GreeterClient.csproj
+++ b/examples/csharp/HelloworldLegacyCsproj/GreeterClient/GreeterClient.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -32,18 +32,26 @@
true
-
- ..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll
+
+ ..\packages\Google.Protobuf.3.8.0\lib\net45\Google.Protobuf.dll
-
- ..\packages\Grpc.Core.1.17.0\lib\net45\Grpc.Core.dll
+
+ ..\packages\Grpc.Core.2.23.0\lib\net45\Grpc.Core.dll
+
+
+ ..\packages\Grpc.Core.Api.2.23.0\lib\net45\Grpc.Core.Api.dll
-
- ..\packages\System.Interactive.Async.3.1.1\lib\net45\System.Interactive.Async.dll
- True
+
+ ..\packages\System.Buffers.4.4.0\lib\netstandard1.1\System.Buffers.dll
+
+ ..\packages\System.Memory.4.5.3\lib\netstandard1.1\System.Memory.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll
+
@@ -59,11 +67,11 @@
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldLegacyCsproj/GreeterClient/packages.config b/examples/csharp/HelloworldLegacyCsproj/GreeterClient/packages.config
index 2fd8228689d..1f648dd06b8 100644
--- a/examples/csharp/HelloworldLegacyCsproj/GreeterClient/packages.config
+++ b/examples/csharp/HelloworldLegacyCsproj/GreeterClient/packages.config
@@ -1,7 +1,10 @@
-
+
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldLegacyCsproj/GreeterServer/GreeterServer.csproj b/examples/csharp/HelloworldLegacyCsproj/GreeterServer/GreeterServer.csproj
index 27ca9630401..e4685a6fc07 100644
--- a/examples/csharp/HelloworldLegacyCsproj/GreeterServer/GreeterServer.csproj
+++ b/examples/csharp/HelloworldLegacyCsproj/GreeterServer/GreeterServer.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -32,18 +32,26 @@
true
-
- ..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll
+
+ ..\packages\Google.Protobuf.3.8.0\lib\net45\Google.Protobuf.dll
-
- ..\packages\Grpc.Core.1.17.0\lib\net45\Grpc.Core.dll
+
+ ..\packages\Grpc.Core.2.23.0\lib\net45\Grpc.Core.dll
+
+
+ ..\packages\Grpc.Core.Api.2.23.0\lib\net45\Grpc.Core.Api.dll
-
- ..\packages\System.Interactive.Async.3.1.1\lib\net45\System.Interactive.Async.dll
- True
+
+ ..\packages\System.Buffers.4.4.0\lib\netstandard1.1\System.Buffers.dll
+
+ ..\packages\System.Memory.4.5.3\lib\netstandard1.1\System.Memory.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll
+
@@ -59,11 +67,11 @@
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldLegacyCsproj/GreeterServer/packages.config b/examples/csharp/HelloworldLegacyCsproj/GreeterServer/packages.config
index 2fd8228689d..1f648dd06b8 100644
--- a/examples/csharp/HelloworldLegacyCsproj/GreeterServer/packages.config
+++ b/examples/csharp/HelloworldLegacyCsproj/GreeterServer/packages.config
@@ -1,7 +1,10 @@
-
+
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldXamarin/Droid/HelloworldXamarin.Droid.csproj b/examples/csharp/HelloworldXamarin/Droid/HelloworldXamarin.Droid.csproj
index 991fa0c9bcc..a25dfdf92d0 100644
--- a/examples/csharp/HelloworldXamarin/Droid/HelloworldXamarin.Droid.csproj
+++ b/examples/csharp/HelloworldXamarin/Droid/HelloworldXamarin.Droid.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -15,7 +15,8 @@
Properties\AndroidManifest.xml
Resources
Assets
- true
+
+
true
@@ -38,7 +39,25 @@
false
+
+ ..\packages\Google.Protobuf.3.8.0\lib\netstandard2.0\Google.Protobuf.dll
+
+
+ ..\packages\Grpc.Core.2.23.0\lib\netstandard2.0\Grpc.Core.dll
+
+
+ ..\packages\Grpc.Core.Api.2.23.0\lib\netstandard2.0\Grpc.Core.Api.dll
+
+
+ ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll
+
+
+ ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll
+
@@ -50,12 +69,6 @@
..\packages\System.Interactive.Async.3.1.1\lib\netstandard1.3\System.Interactive.Async.dll
-
- ..\packages\Google.Protobuf.3.6.0\lib\netstandard1.0\Google.Protobuf.dll
-
-
- ..\packages\Grpc.Core.1.18.0\lib\netstandard1.5\Grpc.Core.dll
-
@@ -63,6 +76,7 @@
+
@@ -79,5 +93,11 @@
-
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldXamarin/Droid/Properties/AndroidManifest.xml b/examples/csharp/HelloworldXamarin/Droid/Properties/AndroidManifest.xml
index 4f2167a1a03..9d767ff323d 100644
--- a/examples/csharp/HelloworldXamarin/Droid/Properties/AndroidManifest.xml
+++ b/examples/csharp/HelloworldXamarin/Droid/Properties/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldXamarin/Droid/packages.config b/examples/csharp/HelloworldXamarin/Droid/packages.config
index 29201117298..d56f8b7d22e 100644
--- a/examples/csharp/HelloworldXamarin/Droid/packages.config
+++ b/examples/csharp/HelloworldXamarin/Droid/packages.config
@@ -1,11 +1,13 @@
-
-
+
+
+
+
@@ -22,6 +24,7 @@
+
@@ -31,6 +34,7 @@
+
diff --git a/examples/csharp/HelloworldXamarin/HelloworldXamarin.sln b/examples/csharp/HelloworldXamarin/HelloworldXamarin.sln
index e2a738f157e..ee3ea5c95d6 100644
--- a/examples/csharp/HelloworldXamarin/HelloworldXamarin.sln
+++ b/examples/csharp/HelloworldXamarin/HelloworldXamarin.sln
@@ -1,6 +1,7 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.329
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "HelloworldXamarin", "HelloworldXamarin\HelloworldXamarin.shproj", "{42FFF3D8-934F-4475-8E68-08DA340BF6E8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloworldXamarin.Droid", "Droid\HelloworldXamarin.Droid.csproj", "{B9B0D41C-1C07-4590-A919-5865E741B2EA}"
@@ -8,38 +9,49 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloworldXamarin.iOS", "iOS\HelloworldXamarin.iOS.csproj", "{62336DF0-60D8-478F-8140-B3CB089B417E}"
EndProject
Global
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ HelloworldXamarin\HelloworldXamarin.projitems*{42fff3d8-934f-4475-8e68-08da340bf6e8}*SharedItemsImports = 13
+ HelloworldXamarin\HelloworldXamarin.projitems*{62336df0-60d8-478f-8140-b3cb089b417e}*SharedItemsImports = 4
+ HelloworldXamarin\HelloworldXamarin.projitems*{b9b0d41c-1c07-4590-a919-5865e741b2ea}*SharedItemsImports = 4
+ EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
+ Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
- Debug|iPhone = Debug|iPhone
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhone.Build.0 = Debug|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|Any CPU.Build.0 = Release|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|iPhone.ActiveCfg = Release|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|iPhone.Build.0 = Release|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B9B0D41C-1C07-4590-A919-5865E741B2EA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {B9B0D41C-1C07-4590-A919-5865E741B2EA}.Debug|iPhone.Build.0 = Debug|Any CPU
{62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
- {62336DF0-60D8-478F-8140-B3CB089B417E}.Release|Any CPU.ActiveCfg = Release|iPhone
- {62336DF0-60D8-478F-8140-B3CB089B417E}.Release|Any CPU.Build.0 = Release|iPhone
+ {62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhone.ActiveCfg = Debug|iPhone
+ {62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhone.Build.0 = Debug|iPhone
{62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {62336DF0-60D8-478F-8140-B3CB089B417E}.Release|Any CPU.ActiveCfg = Release|iPhone
+ {62336DF0-60D8-478F-8140-B3CB089B417E}.Release|Any CPU.Build.0 = Release|iPhone
{62336DF0-60D8-478F-8140-B3CB089B417E}.Release|iPhone.ActiveCfg = Release|iPhone
{62336DF0-60D8-478F-8140-B3CB089B417E}.Release|iPhone.Build.0 = Release|iPhone
{62336DF0-60D8-478F-8140-B3CB089B417E}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{62336DF0-60D8-478F-8140-B3CB089B417E}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhone.ActiveCfg = Debug|iPhone
- {62336DF0-60D8-478F-8140-B3CB089B417E}.Debug|iPhone.Build.0 = Debug|iPhone
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CDC6F6DC-E1C6-45A7-ACC2-A61CDCCA1436}
EndGlobalSection
EndGlobal
diff --git a/examples/csharp/HelloworldXamarin/iOS/HelloworldXamarin.iOS.csproj b/examples/csharp/HelloworldXamarin/iOS/HelloworldXamarin.iOS.csproj
index 9154bf33527..844e06c24c6 100644
--- a/examples/csharp/HelloworldXamarin/iOS/HelloworldXamarin.iOS.csproj
+++ b/examples/csharp/HelloworldXamarin/iOS/HelloworldXamarin.iOS.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -9,6 +9,8 @@
HelloworldXamarin.iOS
HelloworldXamarin.iOS
Resources
+
+
true
@@ -77,7 +79,25 @@
x86
+
+ ..\packages\Google.Protobuf.3.8.0\lib\netstandard2.0\Google.Protobuf.dll
+
+
+ ..\packages\Grpc.Core.2.23.0\lib\netstandard2.0\Grpc.Core.dll
+
+
+ ..\packages\Grpc.Core.Api.2.23.0\lib\netstandard2.0\Grpc.Core.Api.dll
+
+
+ ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll
+
+
+ ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll
+
@@ -89,16 +109,14 @@
..\packages\System.Interactive.Async.3.1.1\lib\netstandard1.3\System.Interactive.Async.dll
-
- ..\packages\Google.Protobuf.3.6.0\lib\netstandard1.0\Google.Protobuf.dll
-
-
- ..\packages\Grpc.Core.1.18.0\lib\netstandard1.5\Grpc.Core.dll
-
-
-
+
+ false
+
+
+ false
+
@@ -108,6 +126,7 @@
+
@@ -122,5 +141,11 @@
-
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/examples/csharp/HelloworldXamarin/iOS/packages.config b/examples/csharp/HelloworldXamarin/iOS/packages.config
index 055222ba48f..80802a8d124 100644
--- a/examples/csharp/HelloworldXamarin/iOS/packages.config
+++ b/examples/csharp/HelloworldXamarin/iOS/packages.config
@@ -1,11 +1,13 @@
-
-
+
+
+
+
@@ -22,6 +24,7 @@
+
@@ -31,6 +34,7 @@
+
diff --git a/examples/csharp/RouteGuide/RouteGuide/RouteGuide.csproj b/examples/csharp/RouteGuide/RouteGuide/RouteGuide.csproj
index 4c6949488c7..bd374a887c1 100644
--- a/examples/csharp/RouteGuide/RouteGuide/RouteGuide.csproj
+++ b/examples/csharp/RouteGuide/RouteGuide/RouteGuide.csproj
@@ -5,9 +5,9 @@
-
-
-
+
+
+
diff --git a/src/csharp/Grpc.Core/Interceptors/ChannelExtensions.cs b/src/csharp/Grpc.Core.Api/Interceptors/ChannelExtensions.cs
similarity index 87%
rename from src/csharp/Grpc.Core/Interceptors/ChannelExtensions.cs
rename to src/csharp/Grpc.Core.Api/Interceptors/ChannelExtensions.cs
index c7d0c2472a1..fe3b516857e 100644
--- a/src/csharp/Grpc.Core/Interceptors/ChannelExtensions.cs
+++ b/src/csharp/Grpc.Core.Api/Interceptors/ChannelExtensions.cs
@@ -38,9 +38,9 @@ namespace Grpc.Core.Interceptors
/// building a chain like "channel.Intercept(c).Intercept(b).Intercept(a)". Note that
/// in this case, the last interceptor added will be the first to take control.
///
- public static CallInvoker Intercept(this Channel channel, Interceptor interceptor)
+ public static CallInvoker Intercept(this ChannelBase channel, Interceptor interceptor)
{
- return new DefaultCallInvoker(channel).Intercept(interceptor);
+ return channel.CreateCallInvoker().Intercept(interceptor);
}
///
@@ -59,9 +59,9 @@ namespace Grpc.Core.Interceptors
/// building a chain like "channel.Intercept(c).Intercept(b).Intercept(a)". Note that
/// in this case, the last interceptor added will be the first to take control.
///
- public static CallInvoker Intercept(this Channel channel, params Interceptor[] interceptors)
+ public static CallInvoker Intercept(this ChannelBase channel, params Interceptor[] interceptors)
{
- return new DefaultCallInvoker(channel).Intercept(interceptors);
+ return channel.CreateCallInvoker().Intercept(interceptors);
}
///
@@ -79,9 +79,9 @@ namespace Grpc.Core.Interceptors
/// building a chain like "channel.Intercept(c).Intercept(b).Intercept(a)". Note that
/// in this case, the last interceptor added will be the first to take control.
///
- public static CallInvoker Intercept(this Channel channel, Func interceptor)
+ public static CallInvoker Intercept(this ChannelBase channel, Func interceptor)
{
- return new DefaultCallInvoker(channel).Intercept(interceptor);
+ return channel.CreateCallInvoker().Intercept(interceptor);
}
}
}
diff --git a/src/csharp/Grpc.Core/ForwardedTypes.cs b/src/csharp/Grpc.Core/ForwardedTypes.cs
index 4394a7c907c..eaf974c3356 100644
--- a/src/csharp/Grpc.Core/ForwardedTypes.cs
+++ b/src/csharp/Grpc.Core/ForwardedTypes.cs
@@ -38,6 +38,7 @@ using Grpc.Core.Utils;
[assembly:TypeForwardedToAttribute(typeof(CallInvoker))]
[assembly:TypeForwardedToAttribute(typeof(CallInvokerExtensions))]
[assembly:TypeForwardedToAttribute(typeof(CallOptions))]
+[assembly:TypeForwardedToAttribute(typeof(ChannelExtensions))]
[assembly:TypeForwardedToAttribute(typeof(ClientBase))]
[assembly:TypeForwardedToAttribute(typeof(ClientBase<>))]
[assembly:TypeForwardedToAttribute(typeof(ChannelCredentials))]