在IDesign WCF编码标准中,它说: “不要复制代理代码。如果两个或多个客户端使用相同的合同,请将代理服务器分解为一个单独的类库。” 我想知道上述状态的优势是什么?
答案 0 :(得分:3)
除了DRY的一般原则(不要重复自己),它避免了具有相同名称和成员的多种类型的潜在混淆。
当然,如果您的两个或更多客户端完全独立(单独的Visual Studio解决方案),则每个客户端都可以拥有自己的代理。
答案 1 :(得分:1)
对我而言,这意味着如果您在多个地方使用代理方法,请不要复制该代码,而是将其移至单独的类。例如,如果由于操作已更改而重新生成代理,则必须在使用该操作的任何位置更改代码。如果该操作仅在一个位置使用,则代码更易于维护。
这也是一种很好的方法来封装代理使用并确保代理正常使用(通道在完成时关闭,异常处理正常,如果异常被捕获,则通道中止等)。
我建议如果您要使用代理方法,则不要使用Visual Studio添加服务引用来生成该代理。如果可能,请考虑使用ChannelFactory实现。