博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI层调用WCF服务实例(源码)
阅读量:5276 次
发布时间:2019-06-14

本文共 3293 字,大约阅读时间需要 10 分钟。

  WCF原理性的东西,暂时还没有深入研究,只是在公司的项目中使用到了,会调用,然后再多做了一些了解,现在将它抽出来了一个小实例,写了一个WCF的demo。

  我写的这个WCF.Demo主要包括数据契约和服务契约,UI客户端层和Host宿主层,基于http和net.tcp两种协议通信。

  不多说,直接贴一张层次图片先,最后提供源码下载。

  

 

  数据契约层(DataContracts)代码:

  

using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.Text;using System.Threading.Tasks;namespace WCF.DataContracts{    [DataContract()]    public class CustomerData    {        [DataMember()]        public string Name { set; get; }        [DataMember()]        public string Sex { set; get; }    }}

 

服务契约接口层(WCF.ServiceContracts)

using System;using System.Collections.Generic;using System.Linq;using System.ServiceModel;using System.Text;using System.Threading.Tasks;namespace WCF.ServiceContracts{    [ServiceContract()]    public interface ICustomerService    {        [OperationContract()]        string ShowInfo();    }}

服务契约实现层(WCF.Services)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using WCF.DataContracts;using WCF.ServiceContracts;namespace WCF.Services{    public class CustomerService : ICustomerService    {        public string ShowInfo()        {            CustomerData data = new CustomerData()            {                Name = "admin",                Sex = "男"            };            return "姓名是:" + data.Name + ",性别是:" + data.Sex;        }    }}

宿主层(两个文件)

Program

using System;using System.Collections.Generic;using System.Linq;using System.ServiceModel;using System.Text;using System.Threading.Tasks;using WCF.Services;namespace WCF.Hosting{    class Program    {        static void Main(string[] args)        {            ServiceHost hostForHello = new ServiceHost(typeof(CustomerService));            hostForHello.Open();            Console.WriteLine("WCF服务启动成功!");            Console.ReadLine();        }    }}

app.config

客户端调用层(WCF.Client)

using System;using System.Collections.Generic;using System.Linq;using System.ServiceModel;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using WCF.ServiceContracts;namespace WCF.Client{    public partial class WebForm1 : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            using (ChannelFactory
channelFactory = new ChannelFactory
("helloEndPoint")) { ICustomerService helloService = channelFactory.CreateChannel(); using (helloService as IDisposable) { TextBox1.Text = helloService.ShowInfo(); } } } }}

客户端配置文件

转载于:https://www.cnblogs.com/renzaijianghu/p/3493264.html

你可能感兴趣的文章
用HOOK禁用鼠标与键盘点击
查看>>
电子测量与仪器第二次作业
查看>>
ajax&bootstrap
查看>>
Computer form factor
查看>>
Ubuntu1404 开启定时任务 crontab
查看>>
xss原理、攻击方式与防御
查看>>
SQL Server 2014 安装小记
查看>>
毕业设计出现的一个严重错误----文件不能相互引用
查看>>
PHP和MySQL处理树状、分级、无限分类、分层数据的方法
查看>>
S3C2410中断系统
查看>>
java中的多线程
查看>>
华工软院17级“软件需求分析”课程大作业
查看>>
关于宏定义
查看>>
浙江 徐崇峰 胜 杭州 郭凤达 2018年第五届“高港杯”象棋青年大师赛男子组
查看>>
Day10 API
查看>>
离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(七)界面安装
查看>>
Codeforces Round #374 (Div. 2) A , B , C 水,水,拓扑dp
查看>>
Execution Plan 执行计划介绍
查看>>
如何实现分类表统计数目和详情表数量同步
查看>>
求旋转数组中的最小值
查看>>