2012-06-14 2 views
6

Я пытаюсь написать код, который будет генерировать точные .proto-файлы из модели типа protobuf-net (V2), поэтому я могу написать клиент python, способный десериализации сообщений, генерируемых protobuf-net.Что такое сообщение .proto для datetime в protobuf-net

Я немного застрял в том, что сообщения должны быть похожи на время, хотя, может ли кто-нибудь пролить свет на это?

< Благодаря 3

ответ

8

Ядро Protobuf спецификации не имеет встроенный механизм для обработки даты/времени.

Если вы работаете между платформами, то, откровенно говоря, я предлагаю разоблачить его более простым способом, например long (время unix или подобное). protobuf-net использует бит более гранулированного макета, чтобы использовать тот факт, что многие значения datetime являются чистыми датами и т. д. Там был BCL.proto на сайте проекта, но я не могу найти его правильно теперь ... это странно (я буду исследовать). Однако: если опция доступна: просто выставляйте данные более простым способом.

+0

К сожалению, у меня нет контроля над типами .NET, которые будут отправлены и получены. Если кто-то отправляет объект .NET DateTime по проводке моему клиенту python, мне нужно точно знать, как protobuf-net сериализовал его (точное определение сообщения), чтобы я мог десериализовать его. – Franchesca

+0

Я нашел копию bcl.proto [здесь] (http://code.google.com/p/protobuf-net/source/browse/trunk/Tools/bcl.proto?r=282). Это применимо к v2? – Franchesca

+0

@Franchesca ну, формат идентичен между v1 и v2. Однако я подчеркиваю, что поддержка 'DateTime' не является частью основной спецификации и в основном предназначена для использования .NET-.NET; было бы намного проще использовать unix time ... –