2011-01-24 14 views
5

Powiel możliwe:
Binary serialization/de-serialization in C++ and C#serializacja map i shared_ptr między aplikacjami C# i C++?

Pracuję nad projektem, gdzie serwer jest napisany w języku C++ (Boost jest szeroko stosowane) oraz aplikacja kliencka jest napisany w języku C#. Mam do czynienia z problemem podczas serializacji/deserializacji wiadomości między klientem/serwerem.

Uczyłem się różnych alternatywnych bibliotek do osiągnięcia tego rodzaju serializacji między platformami, a bufory protokołów wydają się być najlepsze ... ale nie obsługuje serializacji kontenera standardowej biblioteki map i boost::shared_ptr.

Moje pytanie jest więc:

  • Może ktoś wyjaśnić jak map i boost::shared_ptr mogą być szeregowane przy użyciu protokołu buforów. A może nie,
  • Czy Apache's Thrift działa w tym kierunku?
  • ... Czy utknąłem przy użyciu współdzielonych bibliotek DLL po stronie klienta (C#)?
+0

@jgauffin: NIE duplikat (przynajmniej tego pytania), ponieważ ten użytkownik jawnie wyklucza bufory protokołów. – Shog9

+0

Nie widzę jak jakakolwiek implementacja serializowała 'boost :: shared_ptr'. – jgauffin

Odpowiedz

2

Co powiecie na zawijanie klas wiadomości w języku C++ za pomocą klas C++/cli ref, aby korzystać z tej samej biblioteki serializacji doładowania po stronie klienta.