C# 生成的WCF代码中字段/方法的顺序是否可以保留?

C# 生成的WCF代码中字段/方法的顺序是否可以保留?,c#,wcf,version-control,svcutil.exe,C#,Wcf,Version Control,Svcutil.exe,无论我是在VS 2010的解决方案资源管理器中使用“服务引用”(涉及右键单击要更新的服务引用并单击“更新服务引用”),还是使用svcuti.exe(涉及在管理员模式下运行Visual Studio命令提示符并执行批处理文件),从“行更改”的角度来看,生成的代码完全被破坏了,即使真正的差异只是一两行 这使得合并变得很尴尬,因为一个简单的更改会产生一个全新的文件,并且在比较DVC中的更改集时隐藏了更改的本质 为什么svcutil.exe(或其他方法)每次都不自上而下地处理wsdl?对于生成的代码,您

无论我是在VS 2010的解决方案资源管理器中使用“服务引用”(涉及右键单击要更新的服务引用并单击“更新服务引用”),还是使用svcuti.exe(涉及在管理员模式下运行Visual Studio命令提示符并执行批处理文件),从“行更改”的角度来看,生成的代码完全被破坏了,即使真正的差异只是一两行

这使得合并变得很尴尬,因为一个简单的更改会产生一个全新的文件,并且在比较DVC中的更改集时隐藏了更改的本质


为什么svcutil.exe(或其他方法)每次都不自上而下地处理wsdl?

对于生成的代码,您通常不应该考虑执行合并-您应该选择一个版本或另一个版本。任何一个版本本身都是不正确的,因此,需要在合并后进行额外的服务引用更新,以考虑双方的更改。如果代码生成是确定性的,那么合并实际上可以正常工作。例如,另一个代码生成场景是使用sqlmetal.exe生成DataContext。由于表和列每次都以相同的顺序处理,因此生成的DataContext文件可以很容易地合并。@epalm您可以控制客户端代码和服务器代码吗?@epalm如果您可以控制客户端和服务器-我不明白是什么问题。在客户机项目中,跟踪对客户机代码的更改。在服务器项目中,跟踪对服务器代码的更改。在这两种环境中,您的更改集都应该有描述签入的注释,并且您应该能够轻松地看到所做的更改以及更改的原因。@eplam还-我只是想指出,我无法重新创建您描述的问题。我经常使用svcutil从XML模式文件生成类。根据我的经验,如果我从模式文件生成代码,对模式进行更改,然后生成新版本的代码——这些版本(代码)很容易比较。我使用了Beyond Compare,唯一的区别是我对模式的更新导致的更改。