我正在使用用 Java 编写的第 3 方 Web 服务并使用 Apache Axis 1.3。该服务有许多重载操作。当 WCF Svcutil 生成代理时,它会通过在操作名称后附加一个数字来重命名重载操作。例如:
getDataResponse getData(getDataRequest request);
getDataResponse1 getData1(getDataRequest1 request);
这本身不是问题,但是当 Svcutil 生成请求/响应消息时,它会忽略更改 MessageContracts 的 WrapperName 属性。
[MessageContractAttribute(
WrapperName = "getData",
WrapperNamespace = "http://namespace.com",
IsWrapped = true)]
public partial class getDataRequest1 { .. }
当客户端应用程序尝试打开代理时,会抛出以下异常:
InvalidOperationException:操作 getData1 中的 RPC 消息 getDataRequest1 具有无效的正文名称 getData。它必须是 getData1
如果我更改 WrapperName = "getData1" 代理将打开,但是......
- 我无法调用该操作,因为该服务无法识别“getData1”
- 该服务有近 1100 次操作,其中近一半是重载
有没有办法生成和/或修改代理,以便所有操作都与 WCF 一起工作?
标记