- Added CSharpServiceType NONE to skip service generation.
- Defaulted service_generator_type to NONE
- Added /protos/extest/unittest_generic_services.proto to test services
- Migrated unit tests to use the new generic services for testing
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
index 2d86a64..a02255d 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
@@ -18512,112 +18512,10 @@
   #endregion

   

   #region Services

-  public abstract class TestService : pb::IService {

-    public abstract void Foo(

-        pb::IRpcController controller,

-        global::Google.ProtocolBuffers.TestProtos.FooRequest request,

-        global::System.Action<global::Google.ProtocolBuffers.TestProtos.FooResponse> done);

-    public abstract void Bar(

-        pb::IRpcController controller,

-        global::Google.ProtocolBuffers.TestProtos.BarRequest request,

-        global::System.Action<global::Google.ProtocolBuffers.TestProtos.BarResponse> done);

-    

-    public static pbd::ServiceDescriptor Descriptor {

-      get { return UnitTestProtoFile.Descriptor.Services[0]; }

-    }

-    public pbd::ServiceDescriptor DescriptorForType {

-      get { return Descriptor; }

-    }

-    

-    public void CallMethod(

-        pbd::MethodDescriptor method,

-        pb::IRpcController controller,

-        pb::IMessage request,

-        global::System.Action<pb::IMessage> done) {

-      if (method.Service != Descriptor) {

-        throw new global::System.ArgumentException(

-            "Service.CallMethod() given method descriptor for wrong service type.");

-      }

-      switch(method.Index) {

-        case 0:

-          this.Foo(controller, (global::Google.ProtocolBuffers.TestProtos.FooRequest) request,

-              pb::RpcUtil.SpecializeCallback<global::Google.ProtocolBuffers.TestProtos.FooResponse>(

-              done));

-          return;

-        case 1:

-          this.Bar(controller, (global::Google.ProtocolBuffers.TestProtos.BarRequest) request,

-              pb::RpcUtil.SpecializeCallback<global::Google.ProtocolBuffers.TestProtos.BarResponse>(

-              done));

-          return;

-        default:

-          throw new global::System.InvalidOperationException("Can't get here.");

-      }

-    }

-    

-    public pb::IMessage GetRequestPrototype(pbd::MethodDescriptor method) {

-      if (method.Service != Descriptor) {

-        throw new global::System.ArgumentException(

-            "Service.GetRequestPrototype() given method descriptor for wrong service type.");

-      }

-      switch(method.Index) {

-        case 0:

-          return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance;

-        case 1:

-          return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance;

-        default:

-          throw new global::System.InvalidOperationException("Can't get here.");

-      }

-    }

-    

-    public pb::IMessage GetResponsePrototype(pbd::MethodDescriptor method) {

-      if (method.Service != Descriptor) {

-        throw new global::System.ArgumentException(

-            "Service.GetResponsePrototype() given method descriptor for wrong service type.");

-      }

-      switch(method.Index) {

-        case 0:

-          return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance;

-        case 1:

-          return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance;

-        default:

-          throw new global::System.InvalidOperationException("Can't get here.");

-      }

-    }

-    

-    public static Stub CreateStub(pb::IRpcChannel channel) {

-      return new Stub(channel);

-    }

-    

-    public class Stub : global::Google.ProtocolBuffers.TestProtos.TestService {

-      internal Stub(pb::IRpcChannel channel) {

-        this.channel = channel;

-      }

-      

-      private readonly pb::IRpcChannel channel;

-      

-      public pb::IRpcChannel Channel {

-        get { return channel; }

-      }

-      

-      public override void Foo(

-          pb::IRpcController controller,

-          global::Google.ProtocolBuffers.TestProtos.FooRequest request,

-          global::System.Action<global::Google.ProtocolBuffers.TestProtos.FooResponse> done) {

-        channel.CallMethod(Descriptor.Methods[0],

-            controller, request, global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance,

-            pb::RpcUtil.GeneralizeCallback<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(done, global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance));

-      }

-      

-      public override void Bar(

-          pb::IRpcController controller,

-          global::Google.ProtocolBuffers.TestProtos.BarRequest request,

-          global::System.Action<global::Google.ProtocolBuffers.TestProtos.BarResponse> done) {

-        channel.CallMethod(Descriptor.Methods[1],

-            controller, request, global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance,

-            pb::RpcUtil.GeneralizeCallback<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(done, global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance));

-      }

-    }

-  }

+  /*

+  * Service generation is now disabled by default, use the following option to enable:

+  * option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;

+  */

   #endregion

   

 }