Skip to content

(Slim) Packed DateTimeOffset is equal to MinValue after deserialization #82

@kalteherz

Description

@kalteherz
static readonly SlimSerializer serializer = new SlimSerializer();

static byte[] Serialize(object obj)
{
    using (var ms = new MemoryStream())
    {
        serializer.Serialize(ms, obj);
        return ms.ToArray();
    }
}
static object Deserialize(byte[] data)
{
    using (var ms = new MemoryStream(data))
    {
        return serializer.Deserialize(ms);
    }
}

static void Main(string[] args)
{
    var dateTimeOffsetNow = DateTimeOffset.Now;
    var packedDateTimeOffset = new {Now = dateTimeOffsetNow};

    var serializedDateTimeOffset = Serialize(dateTimeOffsetNow);
    var serializedPackedDateTimeOffset = Serialize(packedDateTimeOffset);

    var deserializedDateTimeOffsetNow = Deserialize(serializedDateTimeOffset);
    var deserializedPackedDateTimeOffset = (dynamic) Deserialize(serializedPackedDateTimeOffset);
}

// dateTimeOffsetNow:                      6/27/2019 1:02:12 PM +03:00
// deserializedDateTimeOffsetNow:          6/27/2019 1:02:12 PM +03:00

// packedDateTimeOffset.Now:               6/27/2019 1:02:12 PM +03:00
// deserializedPackedDateTimeOffset.Now:   1/1/0001 12:00:00 AM +00:00

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions