diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc
index 786fd50..3084a69 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/generate/t_csharp_generator.cc
@@ -1549,3 +1549,6 @@
 
   throw "INVALID TYPE IN type_to_enum: " + type->get_name();
 }
+
+
+THRIFT_REGISTER_GENERATOR(csharp, "C#", "");
diff --git a/compiler/cpp/src/generate/t_csharp_generator.h b/compiler/cpp/src/generate/t_csharp_generator.h
index 63ec447..21c4b82 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.h
+++ b/compiler/cpp/src/generate/t_csharp_generator.h
@@ -16,7 +16,12 @@
 class t_csharp_generator : public t_oop_generator
 {
   public:
-    t_csharp_generator(t_program* program) : t_oop_generator(program) {
+    t_csharp_generator(
+        t_program* program,
+        const std::map<std::string, std::string>& parsed_options,
+        const std::string& option_string)
+      : t_oop_generator(program)
+    {
       out_dir_base_ = "gen-csharp";
     }
     void init_generator();
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 3499035..0045778 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -41,7 +41,6 @@
 #include "generate/t_xsd_generator.h"
 #include "generate/t_perl_generator.h"
 #include "generate/t_erl_generator.h"
-#include "generate/t_csharp_generator.h"
 
 using namespace std;
 
@@ -609,7 +608,6 @@
   fprintf(stderr, "  -xsd        Generate XSD output files\n");
   fprintf(stderr, "  -perl       Generate Perl output files\n");
   fprintf(stderr, "  -erl        Generate Erlang output files\n");
-  fprintf(stderr, "  -csharp     Generate C# output files\n");
   fprintf(stderr, "  -o dir      Set the output directory for gen-* packages\n");
   fprintf(stderr, "               (default: current directory)\n");
   fprintf(stderr, "  -I dir      Add a directory to the list of directories\n");
@@ -907,13 +905,6 @@
       delete erl;
     }
 
-    if (gen_csharp) {
-      pverbose("Generating C#\n");
-      t_csharp_generator* csharp = new t_csharp_generator(program);
-      csharp->generate_program();
-      delete csharp;
-    }
-
     if (dump_docs) {
       dump_docstrings(program);
     }
@@ -1107,6 +1098,10 @@
     pwarning(1, "-javabean is deprecated.  Use --gen java:beans");
     generator_strings.push_back("java:beans");
   }
+  if (gen_csharp) {
+    pwarning(1, "-csharp is deprecated.  Use --gen csharp");
+    generator_strings.push_back("csharp");
+  }
   if (gen_cocoa) {
     pwarning(1, "-cocoa is deprecated.  Use --gen cocoa");
     generator_strings.push_back("cocoa");
@@ -1125,7 +1120,7 @@
   }
 
   // You gotta generate something!
-  if (!gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl && !gen_csharp && generator_strings.empty()) {
+  if (!gen_php && !gen_phpi && !gen_py && !gen_rb && !gen_xsd && !gen_perl && !gen_erl && generator_strings.empty()) {
     fprintf(stderr, "!!! No output language(s) specified\n\n");
     usage();
   }
