Thrift: String/Binary distinction for C#.

Reviewed By: mcslee

Test Plan: Built it after a future revision.

Revert Plan: ok

Other Notes:
Submitted by Ben Maurer.
Actually reviewed by Todd Berman.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665463 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/csharp/src/Protocol/TBinaryProtocol.cs b/lib/csharp/src/Protocol/TBinaryProtocol.cs
index 36f03d0..c2eb81f 100644
--- a/lib/csharp/src/Protocol/TBinaryProtocol.cs
+++ b/lib/csharp/src/Protocol/TBinaryProtocol.cs
@@ -195,9 +195,8 @@
 			WriteI64(BitConverter.DoubleToInt64Bits(d));
 		}
 
-		public override void WriteString(string s)
+		public override void WriteBinary(byte[] b)
 		{
-			byte[] b = Encoding.UTF8.GetBytes(s);
 			WriteI32(b.Length);
 			trans.Write(b, 0, b.Length);
 		}
@@ -361,13 +360,15 @@
 			}
 		}
 
-		public override string ReadString()
+		public override byte[] ReadBinary()
 		{
 			int size = ReadI32();
-			return ReadStringBody(size);
+			CheckReadLength(size);
+			byte[] buf = new byte[size];
+			trans.ReadAll(buf, 0, size);
+			return buf;
 		}
-
-		public string ReadStringBody(int size)
+		private  string ReadStringBody(int size)
 		{
 			CheckReadLength(size);
 			byte[] buf = new byte[size];