I'm wondering what would be the best way to serialize a `DateTimeOffset` into a binary stream (using a `BinaryWriter`) and deserialize it again (using a `BinaryReader`).

To serialize a `DateTime`, I have:

```
    public void WriteValue(DateTime value)
    {
        _writer.Write(value.ToBinary());
    }

```

and

```
    public DateTime ReadDateTime()
    {
        return DateTime.FromBinary(_reader.ReadInt64());
    }

```

What is the best approach to serialize/deserialize a `DateTimeOffset` in terms of performance and storage size?