有没有办法重命名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
{
...
}
答案 0 :(得分:1)
如果客户端是从WSDL / MEX生成的,那么这应该简单如下:
[DataContract(Name = "Model1")]
public class Model1V1
{ ...
等
如果客户端正在使用程序集共享,则无法完成,AFAIK。