THRIFT-1955 Union Type writer generated in C# does not WriteStructBegin

Patch: Carl Yeksigian
diff --git a/compiler/cpp/src/generate/t_csharp_generator.cc b/compiler/cpp/src/generate/t_csharp_generator.cc
index f0972cf..90336a6 100644
--- a/compiler/cpp/src/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/generate/t_csharp_generator.cc
@@ -1027,6 +1027,9 @@
   indent(out) << "}" << endl;
   indent(out) << "public override void Write(TProtocol oprot) {" << endl;
   indent_up();
+  indent(out) << "TStruct struc = new TStruct(\"" << tunion->get_name() << "\");" << endl;
+  indent(out) << "oprot.WriteStructBegin(struc);" << endl;
+
   indent(out) << "TField field = new TField();" << endl;
   indent(out) << "field.Name = \"" << tfield->get_name() << "\";" << endl;
   indent(out) << "field.Type = " << type_to_enum(tfield->get_type()) << ";" << endl;