超简单WCF例子

项目图如下:

 1 using System;
 2 using System.ServiceModel;
 3
 4 namespace ServiceLib
 5 {
 6     [ServiceContract]
 7     public interface ICalcService
 8     {
 9         /// <summary>
10         /// 欢迎方法
11         /// </summary>
12         /// <param name="name"></param>
13         /// <returns></returns>
14         [OperationContract]
15         String WelCome(String name);
16     }
17 }

ICalcService

 1 using System;
 2
 3 namespace ServiceLib
 4 {
 5     public class CalcService:ICalcService
 6     {
 7         /// <summary>
 8         /// 欢迎
 9         /// </summary>
10         /// <param name="name"></param>
11         /// <returns></returns>
12         public string WelCome(string name)
13         {
14             Console.WriteLine(name);
15             return "你好:" + name;
16         }
17     }
18 }

CalcService

 1 using System;
 2 using System.ServiceModel;
 3 using System.ServiceModel.Description;
 4
 5 using ServiceLib;
 6
 7 namespace CalcHost
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             // 指定契约
14             Uri address = new Uri("http://127.0.0.1:8888");
15             ServiceHost host = new ServiceHost(typeof(CalcService),address);
16             host.AddServiceEndpoint(typeof(ICalcService), new WSHttpBinding(), "Calc");
17
18             // 公开元数据    注:这个上线前关掉应该比较好
19             ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
20             smb.HttpGetEnabled = true;
21             host.Description.Behaviors.Add(smb);
22
23             // 开启服务
24             host.Opened += (a, b) => Console.WriteLine("服务已开启");
25             host.Open();
26             Console.Read();
27         }
28     }
29 }

CalcHost.Program

 1 using Client.ServiceReference;
 2 using System;
 3
 4 namespace Client
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             using (CalcServiceClient service = new CalcServiceClient())
11             {
12                 Console.WriteLine("Please input name:");
13                 String name = Console.ReadLine();
14                 Console.WriteLine(service.WelCome(name));
15                 Console.Read();
16             }
17         }
18     }
19 }

Client.Program

时间: 2024-10-06 22:01:31

超简单WCF例子的相关文章

超简单WCF例子 - 配置文件版

我最欣赏linux的可定制性 so, 配置本身就是一种美 <system.serviceModel> <behaviors> <serviceBehaviors> <!--第一种元数据发布方式,好像只支持HTTP/HTTPS--> <behavior name="CalcServiceBehavior"> <serviceMetadata httpGetEnabled="true"/> <

用一个简单的例子来演绎事件委托

本篇博文,Insus.NET想使用一个超简单的例子来演绎事件委托.我们在开发网页时,刚开始时在网页的顶部放一个铵钮(web control),想实现一个功能. 在xxx.aspx.cs: OK,某一天,此网页的内容随时间而增长,出现了滚屏.想在网页的底再放一个铵钮,这个铵钮执行事件跟网页顶部铵钮一的事件一样的. 这样子,不管是点击按哪一个铵钮,所执行的事件是一样的:也许一开始你并没有想到onClick的事件名,直接使用铵钮一的onClick的名称,而是如下面的写法:在xxx.aspx.cs,我们

Request —— 让 Node.js http请求变得超简单

先前一直比较关注前端的东西,对后端了解较少.不过一直对Node.js比较感兴趣,去年12月还去参加了阿里的CNODE交流聚会. 以后希望通过这里的博客分享一些学习Node.js的笔记.一方面总结了自己的学习心得,另一方面也可以和大家一起分享交流. 嗯,大概就是这样子. 这篇就先介绍一个Node.js的模块——request.有了这个模块,http请求变的超简单. 使用超简单 Request使用超简单,同时支持https和重定向. var request = require('request');

vuex其实超简单,只需3步

前言 之前几个项目中,都多多少少碰到一些组件之间需要通信的地方,而因为种种原因,event bus 的成本反而比vuex还高, 所以技术选型上选用了 vuex, 但是不知道为什么,团队里的一些新人一听到vuex,就开始退缩了, 因为vuex 很难? 真的很难吗?今天我们用简单的3步来证明一下,vuex有多简单. 纯属个人经验,难免有不正确的地方,如有发现,欢迎指正! 这是一个针对新手的入门级教程.入门级教程.入门级教程 第零步 新建一个vue项目,安装vuex,这里不做过多介绍,能点进来的,默认

pdf怎么转换成excel格式 超简单

可编辑文档转换为不可编辑文档是非常简单的,比如将word或者excel转换成jpg或者pdf,office或者wps软件本身的最新版就自带有这个功能.但是如果我们要将PDF这种不可修改编辑的文档转换成可编辑的形式就会稍微麻烦一点,因为这种格式是任你怎么放大缩小都不会改变文件的排版方式,虽然阅读起来很方便.那怎么办呢?下面小编教给大家一个方法,可以将PDF转换成Excel格式,超简单! 把PDF格式的文件精确转换成EXCEL表格,这边我们可以选择一款叫"迅捷PDF转换器"的软件. (pd

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注头条号.每日更新.也可以添加小编微信:fullstackCourse.一起交流,获取最新全栈教程信息.因为FQ原因,不能下载客户端的同仁,可以关注后回复“GitHub客户端”获取安装软件. 上篇教程:GitHub这么火,程序员你不学学吗? 超简单入门教程 干货 GitHub概念部分出现了一丝纰漏.为

微信公众平台之超简单实用的天气预报后台实现

微信公众平台之超简单实用的天气预报后台实现 概述,前段时间我在开发一个自己的微信公众平台,需要实现天气预报功能,在网上度娘了下,实现天气预报的接口API还蛮多的,有:中国气象局.雅虎和新浪等,中国天气预报接口需要全国的编码,雅虎的有时候访问不了,研究了下还是新浪提供的接口比较简单实用.新浪天气预报API的URL是http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0.其

用最简单的例子理解对象为Null模式(Null Object Pattern)

所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法. 拿"用最简单的例子理解策略模式(Strategy Pattern) "中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接口实现类实例产生,于是会报如下的错: 为了应对这种情况,我们专门设计一个类,当用户输入1,2,3以上的数字,就产生该类的实例.该类同样实现IBall接口. public

Java 多线程编程两个简单的例子

/** * @author gao */ package gao.org; public class RunnableDemo implements Runnable{ @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ System.out.println("新线程输出:"+i); } } public static void main(String []