In to the C# 2014. 1. 13. 18:36

Google Protocol Buffer 사용해보기 with C# - 첫번째

아래 DeathKnight 님께서 추신을 다신 관계로 Protobuf-net에 대해 올리겠습니다.


Protobuf-net.


이름에서도 풍기듯이 .NET 프레임워크에서 사용가능하며, 버전별 빌드를 제공하고 있습니다.

https://code.google.com/p/protobuf-net/


위의 사이트에서 다운을 받을 수도 있고, VisualStudio NuGet에서도 다운로드 받을 수 있습니다.

솔루션 탐색기에서 참조에 protobuf-net을 추가하고, using ProtoBuf를 추가 합니다.


사용방법은 아래와 같습니다.


Line 8 ~ 19까지는 Packet 클래스입니다. [ProtoContract]는 이 클래스는 ProtoBuf-net 직렬화 대상 클래스를 알리는 Attibute 입니다. [Protomember]는 ProtoBuf-net 직렬화 대상 멤버임을 알려주며, 숫자는 Order Number입니다.


Line 21 ~ 32는 Packet 클래스의 세번째 멤버인 리스트에 사용되는 클래스 입니다. 


Line 38 ~ 45에서 테스트용으로 Packet 인스턴스를 채워 주웠구요.


Line 52 ~ 56은 byte 배열로 직렬화 하였습니다. 인스턴스를 MemoryStream 인스턴스에 담은 후 메모리 스트림에서 byte 배열로 변환 합니다.


Line 59 ~ 60은 byte 배열에서 인스턴스로 역직렬화 하였습니다. 그리고 출력하는 내용입니다. 출력 결과는 아래와 같습니다.



타 언어와는 다르게 .proto 파일을 만들 필요가 없으며, generator를 사용할 필요도 없습니다.

우왕 ㅋ굳ㅋ


두번째 ProtoBuf-net 이야기를 기대하세요~ (대단한건 없겠지만요;;;;)