diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index 8c1c6f2c826..f5a0876cf98 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -333,22 +333,28 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
out->Indent();
// constructors
+ out->Print("/// Creates a new client for $servicename$\n"
+ "/// The channel to use to make remote calls.\n",
+ "servicename", GetServiceClassName(service));
out->Print("public $name$(Channel channel) : base(channel)\n",
"name", GetClientClassName(service));
out->Print("{\n");
out->Print("}\n");
+ out->Print("/// Creates a new client for $servicename$ that uses a custom CallInvoker.\n"
+ "/// The callInvoker to use to make remote calls.\n",
+ "servicename", GetServiceClassName(service));
out->Print("public $name$(CallInvoker callInvoker) : base(callInvoker)\n",
"name", GetClientClassName(service));
out->Print("{\n");
out->Print("}\n");
- out->Print("///Protected parameterless constructor to allow creation"
+ out->Print("/// Protected parameterless constructor to allow creation"
" of test doubles.\n");
out->Print("protected $name$() : base()\n",
"name", GetClientClassName(service));
out->Print("{\n");
out->Print("}\n");
- out->Print("///Protected constructor to allow creation of configured"
- " clients.\n");
+ out->Print("/// Protected constructor to allow creation of configured clients.\n"
+ "/// The client configuration.\n");
out->Print("protected $name$(ClientBaseConfiguration configuration)"
" : base(configuration)\n",
"name", GetClientClassName(service));