(转)WCF教程系列(1)-创建第一个WCF程序

作为微软技术.net 3.5的三大核心技术之一的WCF虽然没有WPF美丽的外观
但是它却是我们开发分布式程序的利器
但是目前关于WCF方面的资料相当稀少
希望我的这一系列文章可以帮助大家尽快入门
下面先介绍一下我的开发环境吧
操作系统:windows vista business版本
编译器:Visual Studio 2008(英文专业版)
WCF的三大核心是ABC
也就是A代表Address-where(对象在哪里)
B代表Binding-how(通过什么协议取得对象)
C代表Contact(契约)-what(定义的对象是什么,如何操纵)
其他的理论知识大家可以参见《Programming WCF Service》
或者今年3月份刚刚出版的《Essential Windows Commmunication Foundation》
现在用In Action的方式来手把手教大家创建第一个WCF程序
首先如下图所示创建一个空的解决方案

接下来右键点击解决方案HelloWCF选择Add->New Project并选择Console Application模板并选择名为项目名为Host(服务器端)

接下来右键点击Host项目选择Add->New Item并选择Webservice模板(文件命名为HelloWCFService)

将创建三个文件IHelloWCFService.cs,HelloWCFService.cs以及App.config文件
IHelloWCFService.cs代码如下

using System.ServiceModel;

namespace Host
{
    [ServiceContract]
    public interface IHelloWCFService
    {
        [OperationContract]
        string HelloWCF(string message);
    }
}

而HelloWCFService.cs代码实现如下

using System;

namespace Host
{
    public class HelloWCFService : IHelloWCFService
    {
        public string HelloWCF(string message)
        {
            return string.Format("你在{0}收到信息:{1}",DateTime.Now,message);
        }
    }
}
App.config文件原则上可以不用改,但是address太长了
(默认的为baseAddress=http://localhost:8731/Design_Time_Addresses/Host/HelloWCFService/
缩短为baseAddress=http://localhost:8731/HelloWCFService/
并修改Program.cs文件为
using System;
using System.ServiceModel;

namespace Host
{
    class Program
    {
        static void Main(string[] args)
        {
            using(ServiceHost host=new ServiceHost(typeof(Host.HelloWCFService)))
            {
                host.Open();
                Console.ReadLine();
                host.Close();
            }
        }
    }
}

编译并生成Host.exe文件
接下来创建客户端程序为Console Application项目Client
启动Host.exe文件
右键点击Client项目并选择Add Service Reference...
并且在Address的TextBox里面输入服务器的地址(就是咱们前面设置的baseaddress地址),并点击Go
将得到目标服务器上面的Services,如下图所示

这一步见在客户端间接借助SvcUtil.exe文件创建客户端代理(using Client.HelloWCF;)以及配置文件app.config
修改客户端的程序如下
using System;
using Client.HelloWCF;

namespace Client
{
    class Program
    {
        static void Main(string[] args)
        {
            HelloWCF.HelloWCFServiceClient  proxy=new HelloWCFServiceClient();
            string str = proxy.HelloWCF("欢迎来到WCF村!");
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}
就可以获取得到服务器的对象了

转载于:https://www.cnblogs.com/fcsh820/archive/2010/02/26/1674040.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03 Files

本章提要-----------------------------------------------组成 oracle 的 8 种主要文件(包括 instance 和 database)instance: parameter file, trace file, alert filedatabase: data file, temp file, control file, redo log file, password file简单概述:parameter file: …

TensorFlow发布全新版本,又会带来哪些变革?

全世界只有3.14 % 的人关注了青少年数学之旅经过几年的发展,深度学习方法摧枯拉朽般地超越了传统方法,成为人工智能领域最热门的技术。之后,谷歌、亚马逊、百度、Facebook 纷纷开源了自己的深度学习框架。而支撑AlphaGo的核心技术架构--Tenso…

码农身份得到正式认证

各位同行的兄弟姐妹们,我们的码农(新生代农民工)身份已经得到国家正式确认,程序员这个职业也正式并到农民工行列了。现在互联网大厂,大部分程序员都是在做着模式化开发工作,已经没有技术含量了,…

面试字节我被String类的问题给问死了!

“” 是怎么连接字符串的?(JDK1.7及以上) 总结: 使用 “” 连接字符串时,实际上是使用临时创建的StringBuilder对象来辅助完成的。 对于编译时常量,在编译后直接计算出字符串的值,而不会在运行…

加州大学惊现神操作!物理教授用数学论文摆脱400美元交通罚单,却惨被网友大反转.........

全世界只有3.14 % 的人关注了青少年数学之旅“学好数理化,走遍天下都不怕。”这句从上个世纪八十年代流传下来的金句,至今仍然哺育着理工科的莘莘学子。为了让模友们更好的理解这句话,今天就让小天给你们涨涨姿势,见识一下什么是学…

VMware虚拟机VMDK 快照 数据恢复成功

VMware虚拟机VMDK 快照 数据恢复成功【故障描述】某影院使用的票管理系统安装在一台虚拟中,数据库采用的是Oracle9I,虚拟机在安装好后做了一次快照,期间又做过一次快照,在正常使用过程,虚拟突然崩溃,无法启动&#xff…

[转]两个经典的windbg调试案例,值得学习。

1. 调试Bug的神兵利器:通过WinDbg条件断点收集Log 原文地址:http://blogs.msdn.com/yizhang/archive/2009/03/30/bug-windbg-log.aspx 调试Bug的神兵利器:通过WinDbg条件断点收集Log 前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。…

设计模式之观察者

观察者模式介绍观察者又名事件订阅者、监听者。观察者模式是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察者”该对象的其他对象。通知目标:拥有一些值得关注的状态的对象。发布者:它要自身的状态改…

二面京东被问到Java 反射,我直呼好家伙,这我不是必过吗?

二面京东被问到Java 反射,我直呼好家伙,这我不是必过吗?用多久我会升职加薪、当上技术总监、迎娶漂亮学姐、走上人生巅峰!想想还有点小激动。 好了开始分享面试经历 说说你反射的理解 到底什么是反射呢??…

通用路由封装(GRE)×××配置

本人没有很好的文采,只能直接配置,有不懂的地方,后面可以联系我,在配置当中,我会尽量在配置命令后面加标注。1、在R1上配置相关的命令R1(config)#int fa0/0 ---进入以太网fa0/0接口--R1&#…

gridview DataFormatString

转有个时间要在gridview中显示,但是保持着数据库中的是标准时间,很长,而且只需要显示日期,就想要格式化字符串,可是设置了DataFormatString就是不起作用,后来一查,原来要设置"行为"中HtmlEncode false DataFormatString"{0:格式字符串}" 在DataFormatStri…

太神奇了!使用C#实现自动核验健康码:(1)二维码识别

前言因为疫情的原因,无论是进入商场还是医院、车站,都需要出示健康码。现在基本都是采取人工方式核验健康码,看到绿码就通过,否则就禁止进入。但是,单靠人工核验健康码容易造成人员拥堵,增加病毒交叉感染的…

三角形中惊现叛徒!自己胖的像个球,却能成就世界上最快的赛车引擎......

全世界只有3.14 % 的人关注了青少年数学之旅一日,理科生上山寻访禅师。理科生问禅师:“大师,世人为何总嫌我棱角太突出,不合群!”禅师思索一阵,掏出数根圆柱铺在地上,在上面搁了一块木板&#x…

我丢,去面试初级Java开发岗位,被问到泛型?

1、泛型的基础概念 1.1 为什么需要泛型 List list new ArrayList();//默认类型是Objectlist.add("A123");list.add("B234");list.add("C345");System.out.println(list);for(int i0;i<list.size();i){//若要将list中的元素赋给String变量&a…

echart 地图 某个地区_中国饮食地图来袭!你爱的口味暗藏健康隐患吗?

食&#xff0c;既是人生存之根本&#xff0c;也是人们热爱生活的体现。中国地域广阔、物产富饶&#xff0c;中国人对“吃”看重也愿钻研&#xff0c;种种因素造就了中国美食 “百花齐放”的局面&#xff0c;在“吃货”眼里&#xff0c;中国地图俨然就是一张美食地图。不同地区的…

面试官:实现一个带值变更通知能力的Dictionary

如题&#xff0c; 你知道字典KEY对应的Value什么时候被覆盖了吗&#xff1f;最近大家都在追.Net6 update&#xff0c;咱还是保持节奏&#xff0c;通用语言聊技术。没背景说个铲铲上文中 数据获取组件维护了业务方所有(在用)的连接对象&#xff0c;DBA能在后台无侵入的切换备份库…

颠覆认知!完美赌徒,到底是如何用数学打造经济神话?!

▲ 点击查看说起世界上最会赚钱的数学家&#xff0c;非詹姆斯西蒙斯莫属。1938年&#xff0c;西蒙斯出生于美国的马萨诸塞州&#xff0c;是一个鞋厂的儿子。在其他的孩子&#xff0c;还在听童话故事的时候&#xff0c;西蒙斯就已经开始展露出惊人的数学天赋了。3岁的时候&…

abs函数的使用方法 oracle_SQL Server 常用函数使用方法

1、SubString()&#xff1a;用于截取指定字符串的方法。该方法有三个参数&#xff1a;参数1&#xff1a;用于指定要操作的字符串。参数2&#xff1a;用于指定要截取的字符串的起始位置&#xff0c;起始值为 1 。参数3&#xff1a;用于指定要截取的长度。select substring(abcde…

高考落榜怎么办,奉劝学弟学妹们一些事情,请一定要擦亮眼睛

在目前这个社会情况Java技术是当前社会的一个热门专业&#xff0c;无论是pc端还是移动端对java的需求都是最多的&#xff0c;大学生学java正好顺应时代的发展&#xff0c;不仅有钱途还有前途&#xff0c;Java也适合零基础的人学习。 最近看见一句话 高考不努力&#xff0c;学习…

神仙打架!一人公开单挑全欧洲数学家,却惨遭4位数学家大反转,66年的难题被一晚破解......

全世界只有3.14 % 的人关注了青少年数学之旅两点之间直线最短&#xff0c;这家喻户晓的数学名言&#xff0c;就算是学渣也能倒背如流。但学渣们不知道的是&#xff0c;这条直线并不是最快的。为了让学渣们真正理解这句话&#xff0c;今天&#xff0c;超模君决定科普一波起源关于…