第三方Web服务的C#客户端:无法反映方法xxx

时间:2011-08-25 13:39:46

标签: c# web-services reflection wsdl base

我使用wsdl.exe从一组服务生成了一堆代码,并希望共享多个服务的类型,因为我不想为每个服务使用新的代理类。因此,我希望对每个服务进行良好的统一访问,因此我破解了生成的代码并编写了一个派生自SoapHttpClientProtocol的抽象类BaseService,并手动修改了每个类以从BaseService派生,而不是从SoapHttpClientProtocol自身派生的每个服务。基类有一个受保护的构造函数和一个受保护的字符串字段AddressRelative。

所有代理类都调用基础构造函数,并且在构造时不执行任何其他操作,并使用特定地址扩展名覆盖其服务所在位置的字段。这些服务的安排使它们共享一个基本URL,因此AddressRelative确保所有代理都知道自己的URL。

当我尝试构造其中一个类的代理对象时,我得到一个奇怪的错误 - 我在进入BaseService构造函数时抛出异常。异常的InnerException是方法xxx无法反映。该方法通过反射调用服务,但为什么要抛弃构造,构建基础?!有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这里有一个类似的问题:Method 'XYZ' cannot be reflected

也许其中一个答案有帮助?