是否可以将WCF服务合同名称设置为空?

时间:2012-01-16 15:10:14

标签: c# wcf soap

我有一个传统的肥皂客户端,我需要构建肥皂服务。客户端期望/连接和/断开两个SOAPAction。我有一个名为IProto的接口,它有两个连接和断开功能。问题是WCF在SOAPAction中预先设置了服务合同名称(IProto),并且客户端无法找到期望的操作。例如,服务SOAPAction IProto / connect和IProto / disconnect,客户端期望/ connect和/ disconnect。 有没有办法将服务合同名称设置为空?

PS。旧版客户端源代码无法更改。

4 个答案:

答案 0 :(得分:3)

因此,您不希望将ServiceContract名称设置为空,您希望更改SOAPAction。提出正确的问题会给你一个解决方案。

查看OperationContract属性的Action成员。

[OperationContract(Action="/connect")]

答案 1 :(得分:2)

看起来ServiceContract属性具有您可以设置的属性来实现此目的。

[ServiceContract(Name = "***", Namespace = "***")]

答案 2 :(得分:0)

替换IDispatchOperationSelector的默认实现?

答案 3 :(得分:-2)

尝试

[ServiceContract(Namespace = "")]
public interface IMyServiceContract