【发布时间】:2010-04-21 14:56:05
【问题描述】:
我在 Icontact 和 wcf 服务中有两种方法,我想为新需求修改一种方法。 并希望现有客户调用旧代码。新客户端调用新更改的方法和现有方法以实现向后兼容性。
代码:
[ServiceContract(Namespace = "http://www.testk.com/1/11", Name = "cService")]
public interface ICService
{
[OperationContract(Name="GetWorkingDetails")]
void GetWorkingDetails(int a);
void GetList(int a);
}
//service Implementation
public class MyService : ICService
{
[WebGet]
void GetWorkingDetails(int a)
{
////
}
[WebGet]
void GetList(int a)
{
////
}
}
我在这里进行版本控制.....
[ServiceContract(Namespace = "http://www.testk.com/2/11", Name = "cService")]
public interface ICServicev1
{
[OperationContract(Name="GetWorkingDetails")]
void GetWorkingDetailsV2(int a);
}
<endpoint address="" behaviorConfiguration="AjaxBehavior"
binding="webHttpBinding" bindingConfiguration="" name="v0"
contract="ICService" />
<endpoint address="r1" behaviorConfiguration="AjaxBehavior"
binding="webHttpBinding" bindingConfiguration="" name="v1"
contract="ICServicev1" />
当我调用现有方法时效果很好,当我调用service.svc/r1/GetWorkingDetails 时效果很好。但我也想打电话给service.svc/r1/GetList,这在之前的合同中。我怎么能称之为向后兼容。
谢谢
【问题讨论】:
标签: wcf versioning backwards-compatibility