码迷,mamicode.com
首页 > Windows程序 > 详细

WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3)

时间:2016-04-09 16:34:33      阅读:621      评论:0      收藏:0      [点我收藏+]

标签:

写在最前面:转载请注明出处

目录置顶:

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客户端配置以及代理】 ,如果你觉得有帮助,请继续关注...谢谢

WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3)

标签:

原文地址:http://www.cnblogs.com/acssoft/p/5371536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!