2

사전, 배열, 집합, 숫자, 문자열, 바이트 버퍼와 같은 값을 가진 사전을 목표 C와 C# 사이에서 효율적으로 (시간이 지남에 따라 공간이 덜 중요 함) 전달하려고합니다. Google의 프로토콜 버퍼는 좋았지 만 구조화 된 데이터 만 처리하는 것처럼 보이지만 우리는 임의적입니다. 궁극적으로 우리는 바이너리 (시리얼) 시리얼 라이저를 스스로 작성할 수 있지만, 확실히 이것이 어딘가에 FOSS로 이전에 출시되었다.Objective C와 C# 사이의 임의의 객체를 이진 직렬화?

+0

왜 바이너리입니까? 그렇지 않으면 JSON이 확실한 선택이 될 것입니다. 대역폭이 제한된 매체 (JSON)를 통해 많은 양을 전송해야하는 경우 압축합니다. – Richard

+1

"tagged union"메시지 (어떤 종류의 값인지를 나타내는 열거 형 값을 가진 메시지, 그런 다음 각 종류마다 하나의 필드) 프로토콜 버퍼는 데이터를 매우 유연하게 나타낼 수 있습니다. –

+0

@ 존 키 스케 (JonSkeet) 태그가 달라도 태그를 추가하지 않아도됩니다. 어떤 태그가 값을 가지고 있는지 확인하십시오. 물론 정상적인 의미에서 진정한 '합집합'이되지는 않을 것입니다 ... –

답변

0

ASN.1 사용을 고려 했습니까? ASN.1은 프로그래밍 언어 또는 시스템 아키텍처와 독립적이므로 C, C#, C++ 또는 Java가 필요한지 여부에 관계없이 효율적으로 사용할 수 있습니다.

교환하려는 정보에 대한 설명을 만들고 ASN.1 도구를 사용하여 대상 프로그래밍 언어에 대한 인코더/디코더를 생성하십시오. ASN.1은 또한 효율적인 PER (Packed Encoding Rules)에서 자세한 정보까지 유연한 XER (XML 인코딩 규칙) 범위의 날짜 전송에 대한 몇 가지 다른 규칙을 지원합니다.

이 방법이 효과가 있는지 알아보기 위해 ASN.1에서 재생하려면에서 무료 온라인 ASN.1 컴파일러와 인코더/디코더를 사용해보십시오.

+0

이것은 흥미로운 것으로 보이지만 Google의 프로토콜 버퍼는 학습 곡선 및 도구 측면에서보다 쉽게 ​​접근 할 수 있습니다. –

+1

http://www.oss.com/asn1/resources/asn1-made-simple/introduction.html에서 "ASN.1 Made Simple"를 살펴보면 ASN.1이 실제로 쓰기 쉽다는 것을 알 수 있습니다. Google 프로토콜 버퍼보다 –

관련 문제