2011-10-11 43 views
1

我使用protobuf-csharp-port为wp7生成一个c#文件。如何使用protobuf-csharp-port从单个.proto文件生成多个文件?

我的.protp文件有很多消息,最后生成一个大约100000行的.cs文件。它非常大。我想知道如果我可以为单个消息生成一个.cs文件。

我在老版本的protobuf-csharp-port中发现了选项csharp_multiple_files,现在它已经不存在了。我仍然可以使用当前版本(2.3.0.277)生成多个文件吗?我还在csharp_options.proto中找到了选项multiple_file,但据说这个选项目前还没有兑现。

我想它可以生成多个文件,但我不知道如何。

谢谢。

+0

出于好奇:鉴于这是生成的代码,不打算被编辑甚至看,在单个文件中是否导致*问题*? *你想要这个的原因是什么? –

+0

生成的源文件非常大。我只是想测试一下,如果使用较小的多个文件可以比速度较快的单个文件有更好的性能。 – user988854

+0

最多只会影响编译器的性能(假设我们需要这一切),编译器几乎完成相同的工作,无论它是1个文件还是100个。好吧,Visual Studio的行为可能不同,但*通常*你不会打开这个文件,所以它没关系。基本上,我说“这几乎肯定不会有任何区别”。 –

回答

2

从我记忆中,这个选项实际上已经工作了很长时间。使其工作需要付出巨大的努力,正如Marc所暗示的那样,无论如何,生成单个文件几乎总是更方便。编辑:正如马克指出的,这不太可能有任何速度的含义。 (当然当然只是在开发过程中 - 它不会影响执行时的性能。)如果构建需要很长时间,您可能需要实验将生成的源代码放入其自己的项目; C#编译器会进行一些渐进式编译,以避免重建尚未更改的文件,我相信,但它可能会在项目级别更好地工作。

我决定(或者可能是我的一个合作者)确定完全删除选项会更好,因为我们不支持它,而不是将它保留在那里。没有任何坚定的理由来实施它,我们不想花费时间使它工作。

道歉,如果你是少数人之一,它是有道理的 - 并欢迎修补程序 - 但我不能看到我们很快就实施它。

你可以使用多个.proto文件,当然也可以使用导入(只要你可以避免循环)。

相关问题