相关疑难解决方法(0)

protobuf-net没有正确反序列化DateTime.Kind

使用protobuf-net.dll版本1.0.0.280

当我反序列化DateTime(包裹在一个对象中)时,日期/时间是可以的,但DateTime.Kind属性是'未指定'

考虑这个测试用例来序列化/反序列化DateTime.

[TestMethod]
public void TestDateTimeSerialization()
{
    var obj = new DateTimeWrapper {Date = DateTime.UtcNow};
    obj.Date = DateTime.SpecifyKind(obj.Date, DateTimeKind.Utc);
    var serialized = obj.SerializeProto();
    var deserialized = serialized.DeserializeProto<DateTimeWrapper>();
    Assert.AreEqual(DateTimeKind.Utc, deserialized.Date.Kind);
}

public static byte[] SerializeProto<T>(this T item) where T : class
{
    using (var ms = new MemoryStream())
    {
        Serializer.Serialize(ms, item);
        return ms.ToArray();
    }
}

public static T DeserializeProto<T>(this byte[] raw) where T : class, new()
{
    using (var ms = new MemoryStream(raw))
    {
        return Serializer.Deserialize<T>(ms); …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization protobuf-net

18
推荐指数
2
解决办法
3715
查看次数

标签 统计

.net ×1

c# ×1

protobuf-net ×1

serialization ×1