0

有没有办法重命名 WCF 服务客户端的类型?

例如,我有两个版本(V1 和 V2)的服务。对于每个版本,我都有相同的模型(Model1 和 Model2),但版本发生了变化(所以我将其重命名为 Model1V1、Model1V2 等)。

我希望这两种服务的客户都将模型类型视为 Model1 和 Model2。

我知道我可以重命名运营合同。

[ServiceContract]
public interface ServiceV1
{
    [OperationContract]
    Model1V1 SomeOp(Model2V1 arg);
}

[ServiceContract]
public interface ServiceV2
{
    [OperationContract]
    Model1V2 SomeOp(Model2V2 arg);
}

[DataContract]
public class Model1V1
{
    ...
}
[DataContract]
public class Model2V1
{
    ...
}
[DataContract]
public class Model1V2
{
    ...
}
[DataContract]
public class Model2V2
{
    ...
}
4

1 回答 1

1

如果客户端是从 WSDL/MEX 生成的,那么这应该很简单:

[DataContract(Name = "Model1")]
public class Model1V1
{ ...

ETC

如果客户正在使用程序集共享,那么它就无法完成,AFAIK。

于 2012-09-24T06:34:27.797 回答