2012-09-24 20 views
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 
{ 
    ... 
} 
+1

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

1

如果客戶端在從WSDL/MEX產生,那麼這應該是簡單:

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

如果客戶端使用組件共享,則它不能做, 據我所知。