纯手写wcf代码,wcf入门,wcf基础教程
1、定义服务协定
=>定义接口
using System.ServiceModel;
namespace WcfConsole
{
/// <summary>
/// 定义服务协定
/// </summary>
[ServiceContract]
interface IW
{
[OperationContract]
string HelloWorld();
}
}
2、实现服务协定
=>实现接口
namespace WcfConsole
{
/// <summary>
/// 实现服务协定
/// </summary>
public class W : IW
{
public string HelloWorld()
{
return "HelloWorld";
}
}
}
3、承载和执行服务
=>打开服务
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace WcfConsole
{
/// <summary>
/// 承载和执行主要的 WCF 服务
/// </summary>
class Program
{
static void Main(string[] args)
{
//创建服务网址
Uri url = new Uri("http://localhost:5210/W/");
//创建server主机
ServiceHost host = new ServiceHost(typeof(W), url);
try
{
//加入服务端点
host.AddServiceEndpoint(typeof(IW), new WSHttpBinding(), "serviceName");
//启用元素交换
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
//打开服务
host.Open();
Console.WriteLine("服务打开成功……");
Console.ReadKey();
//关闭服务
host.Close();
}
catch (CommunicationException e)
{
Console.WriteLine(e.Message);
//关闭服务
host.Close();
}
}
}
}
4、创建client
=>须要先打开匃
=>新建项目
=>加入服务引用
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlna2VsaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
5、配置client
=>加入时微软自己主动配置
<?xml version="1.0" encoding="utf-8" ?
>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IW" />
</wsHttpBinding>
</bindings>
<client>
<!--指定用于调用服务时,端点-->
<endpoint address="http://localhost:5210/W/serviceName" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IW" contract="WService.IW"
name="WSHttpBinding_IW">
<identity>
<userPrincipalName value="DUHUIFENG\liman" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
6、使用client
=>
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WService.WClient w = new WService.WClient();
string result = w.HelloWorld();
Console.WriteLine(result);
w.Close();
Console.ReadKey();
}
}
}
纯手写wcf代码,wcf入门,wcf基础教程的更多相关文章
- 纯手写Myatis框架
1.接口层-和数据库交互的方式 MyBatis和数据库的交互有两种方式: 使用传统的MyBatis提供的API: 使用Mapper接口: 2.使用Mapper接口 MyBatis 将配置文件中的每一个 ...
- vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件
vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...
- springmvc 动态代理 JDK实现与模拟JDK纯手写实现。
首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用 ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...
- 简易-五星评分-jQuery纯手写
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- 超级简单的jQuery纯手写五星评分效果
超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...
- .net学习之Session、Cookie、手写Ajax代码以及请求流程
1.IIS 7 以上版本集成了两种模式,一种是经典模式,一种是集成模式(直接将asp.net框架集成到IIS中) 2.浏览器和服务器端通过什么技术来实现的?Socket(套接字),通信的语法是HTTP ...
- SQL纯手写创建数据库到表内内容
建表啥的只点点鼠标,太外行了,不如来看看我的纯手写,让表从无到有一系列:还有存储过程临时表,不间断的重排序: 一:建数据库 create Database Show on primary ( name ...
- 纯手写SpringMVC到SpringBoot框架项目实战
引言 Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 通过这种方式,springboot ...
- 快速开发框架(FDMS)新增1000个对外接口都不须要手写一行代码
一个大型系统难免会跟其它系统有数据交换,这里就要提供数据接口给外部系统. 曾经在一家智能终端设备的公司上班.那段时间的主要工作就是写接口.接口须要与手机.手持设备.系统管理软件等进行数据交换.总结了一 ...
- qt之旅-1纯手写Qt界面
通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.以下是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += \ Find.h QT += ...
随机推荐
- HDU 3085 双广
n*m地图上有 '. ':路 'X':墙 'Z':鬼,每秒蔓延2个单位长度,能够穿墙.共两个,每秒開始时鬼先动 'M':一号,每分钟可移动3个单位长度 'G':二号,每分钟课移动1个单位长度 问两人能 ...
- [DevExpress]XtraTabControl右键加入关闭当前页、关闭其它页、所有关闭的实现
private void xtraTabControl_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButton ...
- MongoDB在Windows2003上安装配置及使用
本文档适用于MongoDB2.0.1版本在windows2003上的安装.配置,以及使用. 或者根据需要下载最新的稳定版本. 安装:将下载之后的压缩包解压到任意目录即可,本文假设解压到[D:\mong ...
- mongo views
db.itemsView.drop(); db.items.aggregate([ { "$match": { "status": "true&quo ...
- Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
Atitit.跨语言反射api 兼容性提升与增强 java c#.Net php js 1. 什么是反射1 1.1. 反射提供的主要功能:1 1.2. 实现反射的过程:1 ...
- TBS 手册 --phpv 翻译
为何使用它? 示例 下载 手册 支持 论坛 推荐 秀出你的站点 http://phpv.net/TBS_Manual.htm#html_automatic 网站: http://www.tinybut ...
- pthread linux mutet:example1
#include<iostream> #include<unistd.h> #include<pthread.h> #include<string> u ...
- Spring3.2.6 + hibernate4.2.8 + hibernate-generic-dao1.2.0
n多方法都不成功,最后在hibernate-generic-dao官网上的例子hibernate-maven-web(使用其jar包及配置,并将hibernate更新为4.2.8,加入ehcache及 ...
- (转载)Javascript removeChild()不能删除全部子节点的解决办法
在Javascript中,只提供了一种删除节点的方法:removeChild().removeChild() 方法用来删除父节点的一个子节点. 语法: parent.removeChild(thisN ...
- Java中常见数据结构
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程 ...