纯手写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 += ...
随机推荐
- Android内存优化大全(中)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...
- ScrollView嵌套ListView冲突问题的最优解决方式
项目做多了之后.会发现事实上ScrollView嵌套ListVew或者GridView等非经常常使用,可是你也会发现各种奇怪问题产生.依据个人经验如今列出常见问题以及代码最少最简单的解决方法. 问题一 ...
- web页面性能分析一些网址
https://developers.google.com/speed/pagespeed/insights/
- 每天进步一点点——Linux中的文件描写叙述符与打开文件之间的关系
转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述 在Linux系统中一切皆能够看成是文件,文件又可分为:普通 ...
- C# 获取或设置本地打印机及配置文件操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...
- win7安装RabbitMQ
1.下载并安装erlang http://www.erlang.org/downloads 2.下载并安装RabbitMQ http://www.rabbitmq.com/install-window ...
- linux c 和c++ 键盘输入不在控制台显示
#include <stdio.h>#include <stdlib.h> #define TTY_PATH "/dev/tty"#define STTY_ ...
- SQL数据库 CRUD
1.删除表 drop table +表名 2.修改表 alter table+表名+ add(添加)+列名+ int(类型) alter table+表名+ drop(删除)+column(列) ...
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...
- jquery特效 商品SKU属性规格选择实时联动
转载,原文链接 功能:各种属性的值选中后,SKU填写表格进行变动,对属性.属性值的数量自适应,编辑时不因去掉勾选导致原有值不显示 所有代码均属原创,现在共享,如果有更好的实现方式,希望互相交流 最终实 ...