2013-03-16 23 views
1

我有WSDL和XSD作爲起點。 (WSDL是使用WCSF藍色工具從XSD生成的)。從WSDL使用工具生成服務代碼。項目名稱是「Autogenerated_Service_Project」。在這個項目中,它將有[ServiceContract]和[DataContract]類。它有一個名爲「EmployeeDataContract」的數據合同。在GetEmployee()服務操作中,將此數據合同返回給客戶端。使用WCF進行Schema First Service Development的項目結構

我有一個名爲「Business_Project」的業務層項目。它有一個返回「Employee」實體對象的方法。

目前,我指的是「Autogenerated_Service_Project」中的「Business_Project」。

Business_Project.MyClass b = new Business_Project.MyClass(); 
EmployeeDataContract d = b.GetAssociate(); 
return EmployeeDataContract; 

當WSDl發生變化時,就會遇到挑戰。當WSDL被更改時,將會重新創建「Autogenerated_Service_Project」,上面提到的代碼將會丟失。

什麼是解決方案來克服這種代碼丟失?

注意:「Autogenerated_Service_Project」是最重要的項目。理想情況下,它不能被任何其他項目引用。

+0

我正在使用Visual Studio 2010 – Lijo 2013-03-16 17:13:44

回答

1

這可以通過在另一個文件中使用Partial Classes來解決。問題中給出的代碼可以移到這個新的部分類文件中。即使重新創建自動生成的文件,該文件仍會保留。

2

你可以改變調用業務層的方法(可能您的解決方案需要額外的層)
但在簡單的方法,你可以一次生成代理,當變化發生在WSDL 手動處理的變化,或者僅使用工具爲新的服務。
如果WSDL上的服務細化,則該解決方案可能適用。