2017-01-19 4 views
0

C# 용 Google 프로토콜 버퍼 사용 자습서를 따르고 있습니다. 객체를 바이트 배열로 변환하는 예제가 보이지 않습니다. 어떻게하는지 알 수 있습니까? 나는 protoc 컴파일러를 사용하여 자동으로 생성 된 파일 경로 수업을했습니다 지금까지이 있습니다Google 프로토콜 버퍼 - 바이트 배열로 직렬화

FilePath fp = new FilePath 
{ 
    Path = "TestPath", 
    RealTimeMultiple = 5.0f 
}; 

그래서, 나는 제대로 된 BinaryFormatter를 사용하지 않고 FP 객체를 직렬화하는 방법을 알아야합니다.

답변

5

당신이 Google.Protobuf nuget 패키지를 사용하는 가정, 당신은 사용할 수 있습니다

using Google.Protobuf; 

... 

byte[] bytes = fp.ToByteArray(); 

당신은 IMessage.ToByteArray 확장 메서드를 사용할 수 있도록 Google.Protobufusing 지침이 필요합니다 - 당신이 전에 실종 있었는지 될 수있다.

+0

감사합니다. WriteTo 메서드를 사용하여 바이트 배열을 전송하는 방법에 대한 예를 알고 계시거나 알고 계신가요? 질문에 더 많은 내용을 추가했습니다. – Roka545

+0

@ Roka545 : "바이트 배열 전송"이란 무엇을 의미합니까? 메시지를 스트림에 쓰려면 대신'WriteTo (stream)'을 사용하십시오. 추가 질문을해도 도움이되지는 않습니다. 따라서 스트림에 쓰는 방법을 이미 알고 있습니다.하지만 스트림을 사용하여 다른 작업을 수행하지 않는 한 MemoryStream에 쓰지는 않습니다. 따라서 스트림에 쓰거나 바이트 배열로 변환하는 방법을 알고 있습니다. 그 밖의 무엇을 알아야합니까? 당신은 실제로 당신이 달성하려고하는 것을 설명하지 않았습니다 ... –

+0

나는 노드 사이에서 데이터를 보내거나 받기 위해 나노봇과 함께 Protobuf를 사용하고 있습니다. 기본적으로, 나는 서로간에 메시지를주고받을 수있는 두 개의 노드를 가지고있다. 하나의 노드는 fp 객체를 생성하고 직렬화하여 다른 객체로 전송합니다. 그러면 수신 노드는 해당 데이터를 수신하고이를 직렬화 해제 한 다음 모든 정보를 추출합니다. – Roka545

관련 문제