【问题标题】:How to compute size of MessagePack .NET object?如何计算 MessagePack .NET 对象的大小?
【发布时间】:2020-12-14 11:11:34
【问题描述】:

如果我有一个没有任何可变大小对象(例如字符串、列表等)的类,MessagePack 库中是否有一些实用函数来计算对象二进制表示的大小?

示例类:

[MessagePackObject]
class Foo {
  [Key(0)]
  public int A { get; set; }
  [Key(1)]
  public float B { get; set; }
}

我目前最好的选择是简单地序列化一个对象并测量它的长度。

【问题讨论】:

    标签: c# msgpack


    【解决方案1】:

    将最终对象传递给辅助方法以获取使用的字节,即;

    var obj = new Foo { A = 1, B = 2};
    var bytes = Foo.ToMessagePack();
    Debug.WriteLine($"size in bytes is {bytes.Length}");
    

    以及扩展方法;

    public static class Helpers
    {
        public static byte[] ToMessagePack<T>(this T data) => MessagePackSerializer.Serialize(data);
    }
    

    【讨论】:

    • 是的,这也是我目前最好的选择 :)
    猜你喜欢
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2017-07-19
    • 2022-11-12
    • 2012-08-31
    • 2010-10-12
    相关资源
    最近更新 更多