public long Id { get; set; }
public long AccountId { get; set; }
public bool UseSuperSafeConversationMode { get; set; }
public override string ToString()
return $"{nameof(Id)}: {Id}, {nameof(AccountId)}: {AccountId}, {nameof(UseSuperSafeConversationMode)}: {UseSuperSafeConversationMode}";
public long Id { get; set; }
public long AccountId { get; set; }
public string Name { get; set; }
public override string ToString()
return $"{nameof(Id)}: {Id}, {nameof(AccountId)}: {AccountId}, {nameof(Name)}: {Name}";
public static void Main()
Console.WriteLine("V1 -> V2");
UseSuperSafeConversationMode = false
var bytes = MessagePackSerializer.Serialize(user);
var userV1 = MessagePackSerializer.Deserialize<UserV1>(bytes);
var userV2 = MessagePackSerializer.Deserialize<UserV2>(bytes);
var json = MessagePackSerializer.ConvertToJson(bytes);
Console.WriteLine(userV1.ToString());
Console.WriteLine(userV2.ToString());
Console.WriteLine("V2 -> V1");
var bytes = MessagePackSerializer.Serialize(user);
var userV1 = MessagePackSerializer.Deserialize<UserV1>(bytes);
var userV2 = MessagePackSerializer.Deserialize<UserV2>(bytes);
var json = MessagePackSerializer.ConvertToJson(bytes);
Console.WriteLine(userV1.ToString());
Console.WriteLine(userV2.ToString());