专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WCF

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

发布时间:2011-06-23 13:50:54 文章来源:www.iduyao.cn 采编人员:星星草
WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3)

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

目录置顶:

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

1楼mark_ran
支持
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: