static void WriteDateTime(PainlessBinaryWriter writer, DateTime value)
 {
     writer.Write(value.ToBinary());
 }
 static void WriteUri(PainlessBinaryWriter writer, Uri value)
 {
     writer.Write(value.ToString());
 }
 static void WriteTimeSpan(PainlessBinaryWriter writer, TimeSpan value)
 {
     writer.Write(value.Ticks);
 }
        static void WriteDateTimeOffset(PainlessBinaryWriter writer, DateTimeOffset value)
        {
            string dataRepresentation = value.ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz");

            writer.Write(dataRepresentation);
        }
 static void WriteGuid(PainlessBinaryWriter writer, Guid value)
 {
     byte[] byteArray = value.ToByteArray();
     writer.Write(byteArray);
 }