Буфер протокола для сериализации C ++ и десериализации в класс C #

Можно ли сериализовать класс в C ++ и десериализовать его в аналогичный класс в C #, используя буфер протокола? Я пробовал сериализацию Json, чтобы преодолеть эту проблему сериализации на разных платформах, но у нее есть проблемы с некоторыми типами данных, такими как список массивов и т. Д. Итак, есть ли какие-либо советы по использованию буфера протокола Google?

2

Решение

Буферы протокола позволят вам описать структуру данных и сериализовать / десериализовать ее для объектов в C ++, Java, C # и других платформах. Вы не (как правило, так или иначе) сериализуете экземпляры своих собственных классов — вы сериализуете экземпляры генерироваться классы. (Я знаю, что protobuf-net позволяет вам украшать ваши собственные классы атрибутами, описывающими, как сериализовать их в буфер протокола, вместо того, чтобы использовать сгенерированные классы. Я не знаю, было ли это сделано в C ++.)

Не ясно, действительно ли это соответствует вашим требованиям, но protobufs, безусловно, допускают кросс-платформенный обмен данными. У него есть ограничения в отношении того, какие данные можно сериализовать — все это достаточно примитивно, и вы строите более сложные структуры из примитивных. Это может расстраивать, если вы уже получили свою модель данных в коде, а затем должны переопределить ее в буферах протокола, но она работает …

6

Другие решения

Других решений пока нет …