2016-09-02 10 views
0
message Action { 

    int32 protocol_version = 1; 
    int64 uid = 2; 
    int64 object_uid = 3; 
    ServiceType service_type = 4; 
    int32 left_messages = 5; 
} 

message SendTo { 
    extend Action { 
     SendTo action = 1010; 
    } 
} 

Если бы я попытался создать сообщение, как и выше дает ошибке service_actions.proto: 10: 25: «com.sys.test.protocol.Action» не декларировать 1010 как добавочный номер ,proto3 Ошибка создания вложенного сообщения

Любое предложение создать такой тип сообщений.

ответ

-1

Я думаю, вы забыли добавить «extenssions» в корневое сообщение. Как и следующее.

message Action { 
    int32 protocol_version = 1; 
    int64 uid = 2; 
    int64 object_uid = 3; 
    ServiceType service_type = 4; 
    int32 left_messages = 5; 

    extensions 6 to max; 
} 
+0

Расширения, как указано выше, не поддерживается в версии proto3. – Sachin

+1

С сайта protobuf: Если вы уже знакомы с синтаксисом proto2, тип Any заменяет расширения. Насколько я понял руководство, они будут осуждать расширения. Однако теперь вы можете использовать синтаксис из proto2. Это точно то, что вы сделали, когда написано "продлить действие {....". –