目錄置頂:
- 關於項目--------------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(1)
- 架構搭建--------------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(2)
- WCF服務端具體實現---------基於DDD領域驅動設計的WCF+EF+WPF分層框架(3)
- WCF客戶端配置以及代理-----基於DDD領域驅動設計的WCF+EF+WPF分層框架(4)
- Domain具體實現------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(5)
- WPF的UI層-----------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(6)
- 組織架構--------------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(7)
- 即時通訊--------------------基於DDD領域驅動設計的WCF+EF+WPF分層框架(8)
- 我的網站
WCF服務端具體實現
我拿一個具體的實例講WCF服務端的實現
組織架構
在這個ACS.OA.WCFService中的MainClient文件夾下添加一個WCF服務(因為我當時划分模塊時,把組織架構划分到設置里面,所以服務命名為 SettingService.svc)刪除SettingService.svc.cs和 ISettingService.cs。
SettingService.svc代碼如下:
<%@ ServiceHost Language="C#" Debug="true" Service="ACS.OA.WCFServiceLib.MainClient.SettingService" CodeBehind="SettingService.cs" %>
在ACS.OA.WCFContract項目的MainClient文件夾下添加一個接口 ISettingService.cs
ISettingService代碼如下:
[ServiceContract] public interface ISettingService { #region 艾克仕網絡雲OA組織架構 [OperationContract] byte[] GetOrgaList(byte[] bytData); [OperationContract] byte[] AddOrga(byte[] bytData); [OperationContract] byte[] UpdateOrga(byte[] bytData); [OperationContract] byte[] DeleteOrga(byte[] bytData); #endregion }
ACS.OA.WCFServiceLib項目的MainClient文件夾下添加一個類SettingService.cs
SettingService代碼如下:

1 public class SettingService: WCFServiceLibBase, ISettingService 2 { 3 #region 艾克仕網絡雲OA組織架構 4 public byte[] GetOrgaList(byte[] bytData) 5 { 6 try 7 { 8 return SettingServiceImpl.Instance.GetOrgaList(bytData); 9 } 10 catch (Exception ex) 11 { 12 return ErrorLogRecode(ex); 13 } 14 } 15 public byte[] AddOrga(byte[] bytData) 16 { 17 try 18 { 19 return SettingServiceImpl.Instance.AddOrga(bytData); 20 } 21 catch (Exception ex) 22 { 23 return ErrorLogRecode(ex); 24 } 25 } 26 public byte[] UpdateOrga(byte[] bytData) 27 { 28 try 29 { 30 return SettingServiceImpl.Instance.UpdateOrga(bytData); 31 } 32 catch (Exception ex) 33 { 34 return ErrorLogRecode(ex); 35 } 36 } 37 public byte[] DeleteOrga(byte[] bytData) 38 { 39 try 40 { 41 return SettingServiceImpl.Instance.DeleteOrga(bytData); 42 } 43 catch (Exception ex) 44 { 45 return ErrorLogRecode(ex); 46 } 47 } 48 #endregion 49 }
與Domain具體交互,在后續章節中我再想講。
再回到項目ACS.OA.WCFService找到Web.config在<services> </services>之間添加如下代碼:
<service behaviorConfiguration="OATcpBehavior" name="ACS.OA.WCFServiceLib.MainClient.SettingService"> <endpoint binding="netTcpBinding" bindingConfiguration="OATcpBinding" name="SettingService" contract="ACS.OA.WCFContract.MainClient.ISettingService"> <identity> <dns value="OAMainClient"/> </identity> </endpoint> <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> </service>
右鍵生成,然后訪問本地IIS(net.tcp需要安裝本地IIS)http://localhost/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc
就可以顯示以下信息:
svcutil.exe net.tcp://desktop-oeq0gl2/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc/mex
net.tcp://desktop-oeq0gl2/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc/mex 這個就是地址,把中間的desktop-oeq0gl2修改為IP地址或域名
然后使用SvcUtil就可以生成客戶端的代理類和客戶端的配置信息。
WCF服務端的實現 大體就是這個步驟了。
下一節我講一下【WCF客戶端配置以及代理】 ,如果你覺得有幫助,請繼續關注...謝謝