msgpack-cli
msgpack-cli copied to clipboard
Serialization field order by declaration order
Hi,
is it possible to optionally let MsgPack sort the serialized data by the original declaration order instead of the alphabetical one? I am working in a project, where the original field names are scrambled by an obfuscator. Using the MessagePackMember attribute would only be the very last resort due to the huge amount of serialized classes to be changed manually.
According to StackOverflow, the MetadataToken property might be used for sorting. https://stackoverflow.com/a/8067702
Sorry, I missed this post for a long time.
Use [MessagePackMember(Id)] where Id is continuous, zero-based integers.
// This should be serialized to ["A", 1] instead of [1, "A"]
public class Foo
{
[MessagePackMember(0)]
public string StringProperty { get; set; } = "A";
[MessagePackMember(1)]
public int IntegerProperty { get; set; } = 1;
}
No problem! Is there any other way? As I wrote above, I am already aware of the MessagePackMember attribute 😉
Oh, I panicked for delayed response.
I understand that your post sugested to change default behavior more handy. Usage of metadata token looks good starting point, but it introduces breaking changes. So, I will implement it when I restart work on wip/v2 branch or more "mild" v2 drop.
Thank you :)