`
terryfeng
  • 浏览: 504100 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WCF 一步一步从入门到精通(一)建立一个简单入门的例子(适合一点不会的朋友阅读)

阅读更多

Windows Communication Foundation (WCF) 是一个统一框架,用于创建既安全可靠又可交互的分布式事务处理应用程序。

在我学习一样新的技术的时候总喜欢一开始就知道他如何使用和配置,然后再深入的了解的更多细节。下面我们就通过图片一步一步的从一点不会开始建立一个简单的WCF程序(这个例子取自微软,很简单):

我使用的环境是: VSTS2008 sp1

1.建立一个名为WCF的空解决方案,再右键点击他,为这个解决方案添加一个“WCF 服务库”项目

2009-03-29_234803

WCF服务库被添加进去,结果如下

2009-03-29_234859

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服务库”的一些基本信息,包括相应的配置文件信息,双击其中的方法,可以在右侧的窗口打开方法。输入相关参数,点击“调用”按钮可以在响应中得到返回的结果。

2009-03-29_235700

4.我们再为这个解决方案,添加一个Web应用程序,作为调用这个WCF服务的演示程序。

Web应用程序被添加进来,右键此项目,点击“添加服务引用”,

 

2009-03-30_000714

在弹出的窗口中点击“发现”,可以发现我们刚才定义的WCF服务,选中他后点击”确定”按钮

2009-03-30_000805

 

5.向Web应用程序页面拖进去4个控件,一个文本框,一个标签,两个按钮,按钮的名字分别为“调用”和“复合类型调用”

2009-03-30_001151

并为这两按钮添加单击事件,代码如下:

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中显示返回的结果

2009-03-30_001540

分享到:
评论

相关推荐

    ASP.NET4.0从入门到精通习题例子11-19章

    这个“ASP.NET4.0从入门到精通习题例子11-19章”压缩包包含了一系列针对ASP.NET 4.0学习者的实践练习,旨在帮助用户深入理解和掌握该技术。 1. **控件与事件处理** - 11章可能涉及基础控件的使用,如TextBox、...

    ASP.NET3.5从入门到精通

    为了能够方便读者的学习,本书前面几个章节详细的讲解了ASP.NET 开发工具的安装,数据库系统的 安装以及ASP.NET 的基本知识。ASP.NET 使用的是面向对象的思想进行应用程序开发,本书还详细的讲解 了面向对象的概念...

    Visual C# 2008从入门到精通近100例子,是C#程序爱好者很好的学习资料,和大家分享.

    《Visual C# 2008从入门到精通近100例子》是一份非常全面且实用的学习资源,旨在帮助初学者以及对C#编程感兴趣的开发者掌握C#语言的基础和高级概念。C#是由微软公司推出的面向对象的编程语言,主要用于开发Windows...

    Microsoft silverlight 4 从入门到精通 Step by Step 1-4 案例

    《Microsoft Silverlight 4 从入门到精通》是针对微软的富互联网应用程序开发平台Silverlight 4的一套详细教程,分为Step by Step的1-4个案例,旨在帮助初学者和有一定基础的学习者深入理解并掌握Silverlight 4的...

    WF从入门到精通(源码)

    本资源"WF从入门到精通(源码)"包含了全书Chapter6至Chapter19的源代码,旨在帮助学习者通过实践深入理解WF的工作原理和应用技巧。 Chapter6通常会介绍WF的基础概念,包括工作流的定义、WF架构、WF项目创建以及工作...

    ADO.NET 4 入门到精通源代码

    这个"ADO.NET 4 入门到精通源代码"包可能是为了帮助开发者深入理解ADO.NET 4的工作原理和实际应用。 1. **数据访问基础**:ADO.NET 4的核心组件包括DataSet、DataTable、DataAdapter和Connection。DataSet是内存中...

    visual csharp 2010 step by step (从入门到精通)源码

    "code"文件夹中的源码是这些理论知识的实践体现,每个例子都对应书中讲解的一个或多个概念。通过阅读和运行这些代码,你可以更好地理解C# 2010的用法,并能快速提升自己的编程技能。记得动手实践是学习编程的关键,...

Global site tag (gtag.js) - Google Analytics