WCF ServiceContract命名空间更新

时间:2011-10-04 12:29:30

标签: wcf namespaces servicecontract

我有以下WCF界面:

[ServiceContract]
public interface IUser
{
    [OperationContract]
    string GetUser();
}

我改变了这个:

[ServiceContract(Namespace = "http://user.com")]
public interface IUser
{
    [OperationContract]
    string GetUser();
}

目标XML名称空间已从默认tempuri.org更改为user.com

这打破了现有客户端的调用,因为wsdl不同。

有没有办法在配置文件中指定此命名空间?这将帮助我保留现有客户端的旧命名空间,并能够升级WS。

1 个答案:

答案 0 :(得分:1)

部署服务时很容易错过的一个非常诚实的错误。在msdn论坛上找到这个帖子,我认为可能就是这个伎俩。

这个想法非常简单,创建一个新的服务契约接口(具有正确的命名空间),从现有的服务契约(使用默认命名空间)继承它。使您的Service类实现新的服务合同,并要求客户端将端点更改为新的服务合同。

网址:http://social.msdn.microsoft.com/Forums/en/wcf/thread/2bb09d41-7ee7-4e9d-bea8-95bd318a4247