public static void GetChecksum(this global::Google.Protobuf.WellKnownTypes.Timestamp tmp, BinaryWriter inWriter) { using (var memStream = new MemoryStream()) { var dataStream = new CodedOutputStream(memStream); tmp.WriteTo(dataStream); // this sucks because its going to do a copy :/ inWriter.Write(memStream.ToArray()); } }