[索引页]
[源码下载]
作者: webabcd
介绍
WCF(Windows Communication Foundation) - 废话不多说,俗也不能免,我也从Hello开始
示例
1、服务
IHello.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;

using
System.ServiceModel;

namespace
WCF.ServiceLib.Sample
{
/// <summary>
/// IHello接口
/// </summary>
[ServiceContract]
public interface IHello
{
/// <summary>
/// 打招呼方法
/// </summary>
/// <param name="name">人名</param>
/// <returns></returns>
[OperationContract]
string SayHello(string name);
}
}
Hello.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;

using
System.ServiceModel;

namespace
WCF.ServiceLib.Sample
{
/// <summary>
/// Hello类
/// </summary>
public class Hello : IHello
{
/// <summary>
/// 打招呼方法
/// </summary>
/// <param name="name">人名</param>
/// <returns></returns>
public string SayHello(string name)
{
return "Hello: " + name;
}
}
}
2、宿主
Hello.svc
<%
@ ServiceHost Language="C#" Debug="true" Service="WCF.ServiceLib.Sample.Hello"
%>
Web.config
<?
xml version="1.0"
?>
<
configuration
>
<
system
.serviceModel
>
<
behaviors
>
<
serviceBehaviors
>
<
behavior
name
="SampleBehavior"
>
<!--
httpGetEnabled - 使用get方式提供服务
-->
<
serviceMetadata
httpGetEnabled
="true"
/>
</
behavior
>
</
serviceBehaviors
>
</
behaviors
>
<
services
>
<!--
name - 提供服务的类名
-->
<!--
behaviorConfiguration - 指定相关的行为配置
-->
<
service
name
="WCF.ServiceLib.Sample.Hello"
behaviorConfiguration
="SampleBehavior"
>
<!--
address - 服务地址
-->
<!--
binding - 通信方式
-->
<!--
contract - 服务契约
-->
<
endpoint
address
=""
binding
="basicHttpBinding"
contract
="WCF.ServiceLib.Sample.IHello"
/>
</
service
>
</
services
>
</
system.serviceModel
>
</
configuration
>
3、客户端
Hello.aspx
<%
@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Hello.aspx.cs"
Inherits="Sample_Hello" Title="不能免俗,我也从Hello开始"
%>

<
asp:Content
ID
="Content1"
ContentPlaceHolderID
="head"
runat
="Server"
>
</
asp:Content
>
<
asp:Content
ID
="Content2"
ContentPlaceHolderID
="ContentPlaceHolder1"
runat
="Server"
>
<
asp:TextBox
ID
="txtName"
runat
="server"
Text
="webabcd"
/>
<
asp:Button
ID
="btnSayHello"
runat
="server"
Text
="Hello"
OnClick
="btnSayHello_Click"
/>
</
asp:Content
>
Hello.aspx.cs
using
System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;

public
partial
class
Sample_Hello : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnSayHello_Click(object sender, EventArgs e)
{
Sample.HelloClient proxy = new Sample.HelloClient();

Page.ClientScript.RegisterStartupScript(
this.GetType(),
"js",
string.Format("alert('{0}')", proxy.SayHello(txtName.Text)),
true);

proxy.Close();
}
}
Web.config
<?
xml version="1.0"
?>
<
configuration
>
<
system
.serviceModel
>
<
client
>
<!--
address - 服务地址
-->
<!--
binding - 通信方式
-->
<!--
contract - 服务契约
-->
<
endpoint
address
="http://localhost:3502/ServiceHost/Sample/Hello.svc"
binding
="basicHttpBinding"
contract
="Sample.IHello"
/>
</
client
>
</
system.serviceModel
>
</
configuration
>
运行结果:
单击" btnSayHello"后弹出提示框,显示"Hello: webabcd"
OK
[源码下载]
[源码下载]
化零为整WCF(1) - 不能免俗,我也从Hello开始
作者: webabcd
介绍
WCF(Windows Communication Foundation) - 废话不多说,俗也不能免,我也从Hello开始
示例
1、服务
IHello.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.ServiceModel;
namespace
WCF.ServiceLib.Sample
{
/// <summary>
/// IHello接口
/// </summary>
[ServiceContract]
public interface IHello
{
/// <summary>
/// 打招呼方法
/// </summary>
/// <param name="name">人名</param>
/// <returns></returns>
[OperationContract]
string SayHello(string name);
}
}
Hello.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.ServiceModel;
namespace
WCF.ServiceLib.Sample
{
/// <summary>
/// Hello类
/// </summary>
public class Hello : IHello
{
/// <summary>
/// 打招呼方法
/// </summary>
/// <param name="name">人名</param>
/// <returns></returns>
public string SayHello(string name)
{
return "Hello: " + name;
}
}
}
2、宿主
Hello.svc
<%
@ ServiceHost Language="C#" Debug="true" Service="WCF.ServiceLib.Sample.Hello"
%>
Web.config
<?
xml version="1.0"
?>
<
configuration
>
<
system
.serviceModel
>
<
behaviors
>
<
serviceBehaviors
>
<
behavior
name
="SampleBehavior"
>
<!--
httpGetEnabled - 使用get方式提供服务
-->
<
serviceMetadata
httpGetEnabled
="true"
/>
</
behavior
>
</
serviceBehaviors
>
</
behaviors
>
<
services
>
<!--
name - 提供服务的类名
-->
<!--
behaviorConfiguration - 指定相关的行为配置
-->
<
service
name
="WCF.ServiceLib.Sample.Hello"
behaviorConfiguration
="SampleBehavior"
>
<!--
address - 服务地址
-->
<!--
binding - 通信方式
-->
<!--
contract - 服务契约
-->
<
endpoint
address
=""
binding
="basicHttpBinding"
contract
="WCF.ServiceLib.Sample.IHello"
/>
</
service
>
</
services
>
</
system.serviceModel
>
</
configuration
>
3、客户端
Hello.aspx
<%
@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Hello.aspx.cs"
Inherits="Sample_Hello" Title="不能免俗,我也从Hello开始"
%>

<
asp:Content
ID
="Content1"
ContentPlaceHolderID
="head"
runat
="Server"
>
</
asp:Content
>
<
asp:Content
ID
="Content2"
ContentPlaceHolderID
="ContentPlaceHolder1"
runat
="Server"
>
<
asp:TextBox
ID
="txtName"
runat
="server"
Text
="webabcd"
/>
<
asp:Button
ID
="btnSayHello"
runat
="server"
Text
="Hello"
OnClick
="btnSayHello_Click"
/>
</
asp:Content
>
Hello.aspx.cs
using
System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
public
partial
class
Sample_Hello : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSayHello_Click(object sender, EventArgs e)
{
Sample.HelloClient proxy = new Sample.HelloClient();
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"js",
string.Format("alert('{0}')", proxy.SayHello(txtName.Text)),
true);
proxy.Close();
}
}
Web.config
<?
xml version="1.0"
?>
<
configuration
>
<
system
.serviceModel
>
<
client
>
<!--
address - 服务地址
-->
<!--
binding - 通信方式
-->
<!--
contract - 服务契约
-->
<
endpoint
address
="http://localhost:3502/ServiceHost/Sample/Hello.svc"
binding
="basicHttpBinding"
contract
="Sample.IHello"
/>
</
client
>
</
system.serviceModel
>
</
configuration
>
运行结果:
单击" btnSayHello"后弹出提示框,显示"Hello: webabcd"
OK
[源码下载]
本文通过一个简单的 WCF 服务示例介绍了如何创建、部署及调用一个基于 Windows Communication Foundation 的服务。示例包括服务接口定义、实现类、宿主配置及客户端调用过程。


199

被折叠的 条评论
为什么被折叠?



