본문 바로가기
c#

MessagePack

by kcj3054 2022. 7. 6.
  • 게임서버를 만들 때 네트워크 통신 부분에서 직렬화 역직렬화가 필요하다. 그때 c#에서 MessagePack을 사용하면 아주 편리하게 사용 직렬화 역직렬화가 가능하다 이것이 아니면 보내쪽에 맞게 파싱작업도 해야해서 힘들다.

  • neget에서 messagepack을 설치하면 바로 사용가능하다.

예제

// See https://aka.ms/new-console-template for more information

using MessagePack;

class Program
{
    static void Main(string[] args)
    {
        Student student = new Student()
        {
            Name = "범범조조",
            Age = 29,
            Score = 77,
            Grade = "C+"
        };

        byte[] bytes = MessagePackSerializer.Serialize(student);
        Student student2 = MessagePackSerializer.Deserialize<Student>(bytes);

        Console.WriteLine($"{student2.Name} , {student2.Age}, {student2.Score}, {student2.Grade}");

        Console.WriteLine();

        // JSON 변경
        var json = MessagePackSerializer.ConvertToJson(bytes);
        Console.WriteLine(json);


        public int SendBuffer { get; set; }
    }
}

[MessagePackObject]
public class Student
{
    [Key(0)]
    public string Name { get; set; }
    [Key(1)]
    public int Age { get; set; }
    [Key(2)]
    public int Score { get; set; }
    [Key(3)]
    public string Grade { get; set; }
}

'c#' 카테고리의 다른 글

추상 vs 인터페이스  (0) 2022.12.05
c#의 init access 문법과 top level  (0) 2022.07.24
Immutable  (0) 2022.07.07
readonly vs const  (0) 2022.07.06
Delegate, Property, nullable, exception, event  (0) 2022.07.03