重命名客户端的参数类型

时间:2012-09-24 06:21:24

标签: c# wcf wcf-client

有没有办法重命名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
{
    ...
}

1 个答案:

答案 0 :(得分:1)

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

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

如果客户端正在使用程序集共享,则无法完成,AFAIK。