diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index f5a0876cf98c815089b61d337889b92d672d2d31..3d4a8cb9c28b72ff43ef434266e32cda1a5a252b 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -327,7 +327,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor *service) {
   out->Print("/// <summary>Client for $servicename$</summary>\n",
              "servicename", GetServiceClassName(service));
   out->Print(
-      "public class $name$ : ClientBase<$name$>\n",
+      "public partial class $name$ : ClientBase<$name$>\n",
       "name", GetClientClassName(service));
   out->Print("{\n");
   out->Indent();
@@ -495,7 +495,7 @@ void GenerateService(Printer* out, const ServiceDescriptor *service,
                      bool generate_client, bool generate_server,
                      bool internal_access) {
   GenerateDocCommentBody(out, service);
-  out->Print("$access_level$ static class $classname$\n", "access_level",
+  out->Print("$access_level$ static partial class $classname$\n", "access_level",
              GetAccessLevel(internal_access), "classname",
              GetServiceClassName(service));
   out->Print("{\n");