Windows Communication Foundation (WCF) 是一个统一框架,用于创建既安全可靠又可交互的分布式事务处理应用程序。
在我学习一样新的技术的时候总喜欢一开始就知道他如何使用和配置,然后再深入的了解的更多细节。下面我们就通过图片一步一步的从一点不会开始建立一个简单的WCF程序(这个例子取自微软,很简单):
我使用的环境是: VSTS2008 sp1
1.建立一个名为WCF的空解决方案,再右键点击他,为这个解决方案添加一个“WCF 服务库”项目
WCF服务库被添加进去,结果如下
2.WCF项目中有两个默认建立好的文件Iservice1.cs和Service1.cs ,我们下面要对这两个文件稍稍的做一下修改
IService1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WcfServiceLibrary
{
// 注意: 如果更改此处的接口名称“IService1”,也必须更新 App.config 中对“IService1”的引用。
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(string value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// 任务: 在此处添加服务操作
}
// 使用下面示例中说明的数据协定将复合类型添加到服务操作
[DataContract]
public class CompositeType
{
bool boolValue = false;
string stringValue = "朋友 ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}
Service1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WcfServiceLibrary
{
// 注意: 如果更改此处的类名“IService1”,也必须更新 App.config 中对“IService1”的引用。
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("你输入的是: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite.BoolValue)
{
composite.StringValue += " 你好!";
}
return composite;
}
}
}
这里定义了两个方法,分别用来演示,普通类型参数及返回值的调用,以及传递和返回复合类型的调用
3.之后,点击F5运行这个“WCF服务库”,VS会启动“WCF 调试客户端”调试WCF服务
我们可以在调试窗口右侧看到我们“WCF服务库”的一些基本信息,包括相应的配置文件信息,双击其中的方法,可以在右侧的窗口打开方法。输入相关参数,点击“调用”按钮可以在响应中得到返回的结果。
4.我们再为这个解决方案,添加一个Web应用程序,作为调用这个WCF服务的演示程序。
Web应用程序被添加进来,右键此项目,点击“添加服务引用”,
在弹出的窗口中点击“发现”,可以发现我们刚才定义的WCF服务,选中他后点击”确定”按钮
5.向Web应用程序页面拖进去4个控件,一个文本框,一个标签,两个按钮,按钮的名字分别为“调用”和“复合类型调用”
并为这两按钮添加单击事件,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
Label1.Text = client.GetData(TextBox1.Text);
}
protected void Button2_Click(object sender, EventArgs e)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
ServiceReference1.CompositeType paramCT = new WebApplication.ServiceReference1.CompositeType();
paramCT.BoolValue = true;
paramCT.StringValue = TextBox1.Text;
ServiceReference1.CompositeType returnCT = client.GetDataUsingDataContract(paramCT);
Label1.Text = returnCT.StringValue;
}
}
}
好了,现在设置Web应用程序为启动项,点击F5,可以测试程序的结果。结果和文件结构如下:
文本框输入内容,点击“调用”按钮,会在Label中显示返回的结果
分享到:
相关推荐
最好的WCF入门教程 WCF 入门教程这一系列文章的内容是从 MSDN 中 COPY 过来的, 讲述的是最简单的 WCF 程序示例: 如何在控制台应 用程序实现和承载 WCF 服务,以及如何创建,配置和使用 WCF 客户端
WCF编程从入门到精通之WCF实现一个Host多契约服务详解
以前刚学WCF时写的一个入门例子,Hello World程序,看完例子容易加深理解书本上的理论知识。
WCF从入门到提高再加个例子WCF从入门到提高再加个例子WCF从入门到提高再加个例子
这个例子是我参照别人的代码 自己稍作修改的WCF 使用的例子 源代码完全可以运行 参考者最好自己重新写一个 然后也稍作修改 这样子有助于学习
从不会到精通,快速WCF上路从不会到精通,快速WCF上路从不会到精通,快速WCF上路从不会到精通,快速WCF上路从不会到精通,快速WCF上路从不会到精通,快速WCF上路从不会到精通,快速WCF上路
《asp.net 4从入门到精通》以asp.net应用程序开发为主题,全面介绍了asp.net4的...《asp.net 4从入门到精通》适合刚接触asp.net的初学者、希望了解asp.net 4新特性的读者和渴望了解asp.net工作原理的开发人员。
Wcf入门例子。简单易懂。 例子用vs2008编写。 源码详细说明如下链接:http://www.cnblogs.com/scottckt/archive/2010/09/04/1818267.html
(WCF) 二、一个简单的WCF例子:http://blog.csdn.net/xiaoyong322/article/details/8540379
讲解WCF技术的,适合各种阶段的学习。从入门到进阶。
WCF入门教材,很适合初学者学习使用,写的很详细,很周到
WCF 入门的简单的例子 便于入门学习 通过这个简单的例子,初学者可以很好的了解到WCF 的基本功能怎样实现
wcf简单入门例子,包括详细的配置步骤,帮助读者快速入门。
WCF 入门例子 分 客户端、服务端 2个查询 放在一个解决方案
WCF服务开发详解WCF服务开发详解WCF服务开发详解
很简单的一个WCF入门实例 自己整理的WCF入门 看了很多书没查到很令人满意的WCF教程 从网上搜集整理了一个
WCF 代码实例 简单入门 我的第一个HelloWCF ,自己写的,可以运行,在注意VS要以管理员的身份运行不然无法启动一个服务进程
很多学习WCF的例子,感觉受益匪浅,但是由于每个人学习的侧重点不同,一些很详细的细节例如每一个属性都是用来干什么的,建立不同的项目类型对创建的服务有什么区别等等,都不得而知。终于,在MSDN上发现了一篇入门...
很多学习WCF的例子,感觉受益匪浅,但是由于每个人学习的侧重点不同,一些很详细的细节例如每一个属性都是用来干什么的,建立不同的项目类型对创建的服务有什么区别等等,都不得而知。终于,在MSDN上发现了一篇入门...