Я пытаюсь поговорить с программой # C, которая использует Protobuf-сеть из Iphone с помощью http://code.google.com/p/metasyntactic/wiki/ProtocolBuffersProtobuf-сеть - кавычка, Словари и .proto файлы
К сожалению файла .proto я дал (генерируемую из # исходного кода C) включает в себя линию, которая protoc отвергает:
repeated Pair_Guid_List`1 Local = 6;
Вероятно, это происходит потому, что источником данных является C# словарь, с помощью ключа Guid и класса в качестве значения. Есть ли способ справиться с этим лучше?
Версия протобуф-сети в использовании - r278.zip.
(C# для отправки и получения этих protobufs все работает нормально, это просто, когда мы добавим Iphone в смесь, что это становится проблемой.)
UPDATE: все работает теперь благодаря Марк!
Объект на стороне C# оказался:
[ProtoMember(7)]
public Dictionary<Guid, List<Pages>> ReceivedPages { get; set; }
, которые прекрасно работали с использованием следующих в .proto:
message PagesDict {
required bcl.Guid guid = 1;
repeated Pages Pages = 2;
}
с сообщением о котором идет речь, содержащая:
repeated PagesDict ReceivedPages = 7;
Спасибо за ваш ответ. Марк! Я использую http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers на iphone - это генерирует собственный код Objective C из файла .proto. Они действительно используют Serializer.GetProto. Благодарим вас за описание моделирования. Я попытаюсь определить такое сообщение. –
JosephH
Просто сказать, что я все это работаю. Объект на стороне C# оказался [ProtoMember (7)] Публичный словарь> Полученные документы {get; задавать; } , который работал нормально, используя следующее в .proto: message PagesDict { required bcl.Guid guid = 1; повторяющиеся Страницы Страницы = 2; } repeat PagesDict ReceivedPages = 6; –
JosephH