65.9K
CodeProject 正在变化。 阅读更多。
Home

创建和调用你的第一个 WCF 服务

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.21/5 (54投票s)

2009 年 9 月 25 日

CPOL

2分钟阅读

viewsIcon

666490

downloadIcon

18292

在本文中,我将探讨如何创建和使用 WCF 服务。 WCF 是一个下一代编程平台和运行时系统,用于构建、配置和部署面向服务的应用程序。

引言

在本文中,我将探讨如何创建和使用 WCF 服务。 WCF 是一个下一代编程平台和运行时系统,用于构建、配置和部署面向服务的应用程序。更多详情,请参见 这里

创建 WCF 服务

我将创建一个股票服务来演示 WCF 服务。要创建 WCF 服务,请按照以下步骤操作

  1. 启动 Visual Studio 2008。
  2. 单击“文件” -> “新建” -> “项目”,然后选择 WCF 服务应用程序。
  3. 它将创建一个 WCF 服务应用程序模板。

我将删除默认的契约,然后创建一个IStock契约,如下所示。

Using the Code

[ServiceContract]
    public interface IStock
    {
        [OperationContract]
        Stock GetStock(string Symbol);   
    }

上述契约有一个方法,该方法为给定的股票代码返回一个股票对象。 这是我们的股票类,它分别具有股票代码日期公司收盘价属性。

[DataContract]
    public class Stock
    {
        [DataMember]
        public string Symbol { get; set; }
        [DataMember]
        public DateTime Date { get; set; }
        [DataMember]
        public string Company { get; set; }
        [DataMember]
        public decimal Close { get; set; }
    }

接下来,我将删除默认的服务并创建一个股票服务,该服务将实现Istock契约,如下所示

 public class Stocks : IStock
    {
        #region IStock Members
        public Stock GetStock(string Symbol)
        {
            Stock st = null;
            switch (Symbol.ToUpper())
            { 
                case "GOOG":
                    st = new Stock { Symbol = Symbol, Date = DateTime.Now, 
			Company = "Google Inc.", Close = 495 };
                    break;
                case "MSFT":
                    st = new Stock { Symbol = Symbol, Date = DateTime.Now, 
			Company = "Microsoft Corporation", Close = 25 };
                    break;
                case "YHOO":
                    st = new Stock { Symbol = Symbol, Date = DateTime.Now, 
			Company = "Yahoo! Inc.", Close = 17 };
                    break;
                case "AMZN":
                    st = new Stock { Symbol = Symbol, Date = DateTime.Now, 
			Company = "Amazon.com, Inc.", Close = 92 };
                    break; 
            }
            return st;
        }
        #endregion
    }

在上述服务中,我实现了IStock契约,该契约有一个GetStock方法,该方法为给定的股票代码返回股票对象。

现在,我的web.config中将有以下端点

<service behaviorConfiguration="WcfSample.Service1Behavior" name="WcfSample.Stocks">
<endpoint address="" binding="wsHttpBinding" contract="WcfSample.IStock">
<identity>
 <dns value="localhost"/>
 </identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>

在上述配置中,我们有address="",即 localhost,binding="wsHttpBinding"contract="WcfSample.IStock"

现在,我将编译该服务并构建一个客户端来使用该服务。

创建客户端以使用服务

要创建客户端,我将创建一个 Web 应用程序。 请按照以下步骤操作。

  1. 右键单击“解决方案” -> “添加” -> “新项目”,然后选择 ASP.NET Web 应用程序。
  2. 它将创建一个 Web 应用程序模板。
  3. 现在,我将添加服务引用。 要添加服务引用,请选择客户端应用程序,然后添加服务引用。 由于我们的客户端在同一个解决方案中,我将单击“发现”并“在解决方案中查找服务”,如下所示

  4. default.aspx中,我将创建一个简单的 UI,一个文本框用于输入股票代码和一个按钮用于调用服务以获取股票信息。 这是我们的后台代码

    ServiceReference2.StockClient sc = new ServiceReference2.StockClient();
    ServiceReference2.Stock st = sc.GetStock(TextBox1.Text.Trim());
    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("<B>Company:</B> {0}<br />", st.Company);
    sb.AppendFormat("<B>Date: </B>{0}<br />", st.Date);
    sb.AppendFormat("<B>Close: </B>{0}<br />", st.Close);
    sb.AppendFormat("<B>Symbol: </B>{0}<br />", st.Symbol); 
    Label1.Text = sb.ToString(); 
  5. 以下是我们最终应用程序的一些屏幕截图

摘要

在本文中,我们探讨了如何创建和使用 WCF 服务。 如您所见,使用 Visual Studio 2008 创建和使用 WCF 服务非常简单。

历史

  • 2009年9月25日:初始帖子
© . All rights reserved.