我有两个Web服务,例如:
void LOG(string , string ,out int)
int LOG(string ,string)
其中一个用于生产,一个用于测试。
在这种情况下最好的做法是什么,如何在代码中写得更漂亮......
而不是在我的主要代码中发表丑陋的#IF #ELSE
语句。
第一个是生产一个,第二个是测试版。
两个版本的功能相同。
我从原始Web服务获得WSDL文件之间的区别,我使用了wsdl.exe yourFile.wsdl /l:CS /serverInterface
并获得了我的测试服务,但是当我添加它作为我的应用程序的参考时,我有一个不同的代理和函数签名有点不同。不明白为什么。
答案 0 :(得分:2)
但是当我把它作为参考添加到我的 应用程序我有一个不同的 代理和功能签名 有点不同。不知道为什么
我认为这是为了避免Web服务客户端类中具有相同签名的两种方法。 如果我说得对,那么你有两个带有一个界面的webservice实例。那么您不需要为项目添加两个引用。 只需将web-service的位置指定为实例化的参数,而不是使用无参数构造函数。
<强>更新强> 从技术上讲(因为你用“设计模式”标记它)你可以使用策略模式进行调用以及依赖注入。 但是如果这些w / s实例完全相同,我建议你找出这些WSDL或生成的客户端代码有什么问题。问题在于生成存根,而不是代码优雅。