Как использовать protobuf-csharp-port для генерации нескольких файлов из одного файла .proto? - PullRequest
1 голос
/ 11 октября 2011

Я использую protobuf-csharp-port для генерации файла c # для wp7.

Мой файл .protp содержит много сообщений и, наконец, создает файл .cs длиной около 100 000 строк. Это очень большой. Мне интересно, могу ли я сгенерировать один файл .cs для одного сообщения.

Я нашел опцию csharp_multiple_files в старой версии protobuf-csharp-port, и теперь ее нет. Могу ли я сгенерировать несколько файлов, используя текущую версию (2.3.0.277)? Я также нашел параметр множественный_файл в csharp_options.proto, но, как говорят, этот параметр в настоящее время не учитывается.

Я думаю, он может генерировать несколько файлов, но я не знаю как.

Спасибо.

1 Ответ

2 голосов
/ 11 октября 2011

Из того, что я помню, прошло очень много времени с тех пор, как этот вариант действительно работал.Чтобы это работало, потребовались бы значительные усилия, и, как предположил Марк, в любом случае почти всегда удобнее создавать один файл.РЕДАКТИРОВАТЬ: Как отметил Марк, вряд ли это повлияет на скорость.(Конечно, будет только во время разработки - это не повлияет на производительность во время выполнения.) Если сборка занимает много времени, вы можете поэкспериментировать сположить сгенерированный источник в свой собственный проект;компилятор C # выполняет некоторую инкрементную компиляцию, чтобы избежать перекомпоновки файлов, которые, я думаю, не изменились, но возможно, что он будет работать лучше на уровне проекта.

Я решил (или, возможно, один из моих сотрудников)что было бы лучше полностью удалить опцию, поскольку мы ее не поддерживали, а не оставлять ее там, ничего не делая.Без какой-либо веской причины для его реализации мы не хотели тратить время на то, чтобы заставить его работать.

Извиняюсь, если вы один из немногих, для кого это имеет смысл - и исправления приветствуются, конечно - но я не вижу, чтобы мы внедрили его в ближайшее время.

Вы могли бы использоватьконечно, несколько файлов .proto с импортом (если вы можете избежать циклов).

...