WCF服務端具體實現---------基於DDD領域驅動設計的WCF+EF+WPF分層框架(3)


寫在最前面:轉載請注明出處

目錄置頂:

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  }
SettingService View Code

與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客戶端配置以及代理】 ,如果你覺得有幫助,請繼續關注...謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM