目录置顶:
- 关于项目--------------------基于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代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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客户端配置以及代理】 ,如果你觉得有帮助,请继续关注...谢谢