您的位置:首页 > 其它

一个简单的寄宿iis的wcf例子

2011-06-25 17:40 288 查看
一.定义服务契约接口
namespace Contracts
{

[ServiceContract(Name =
"CalculatorService",Namespace =
"liufuchu")]

public
interface
ICalculator

{

[OperationContract]

DataTable Add(double n1,
double n2);

[OperationContract]

double Subtract(double n1,
double n2);

[OperationContract]

double Multiply(double n1,
double n2);

[OperationContract]

double Divide(double n1,
double n2);

}
}
二.定义接口的实现
namespace Services
{

public
class
CalculatorService :ICalculator

{

public
DataTable Add(double n1,
double n2)

{

DataTable dt =
new
DataTable();

dt.TableName = "liufuchu";

dt.Columns.Add("row1",typeof(double));

dt.Columns.Add("row2",typeof(double));

DataRow dr = dt.NewRow();

dr["row1"] = n1;

dr["row2"] = n2;

dt.Rows.Add(dr);

return dt;

}

public
double Subtract(double n1,
double n2)

{

return n1 - n2;

}

public
double Multiply(double n1,
double n2)

{

return n1 * n2;

}

public
double Divide(double n1,
double n2)

{

return n1 / n2;

}

}
}

配置文件:
<?xml
version="1.0"
encoding="utf-8" ?>
<configuration>

<system.serviceModel>

<behaviors>

<serviceBehaviors>

<behavior
name="metadataBehavior">

<serviceMetadata
httpGetEnabled="true"/>

</behavior>

</serviceBehaviors>

</behaviors>

<services>

<service
behaviorConfiguration="metadataBehavior"
name="Services.CalculatorService">

<endpoint
binding="wsHttpBinding"
contract="Contracts.ICalculator"></endpoint>

</service>

</services>

</system.serviceModel>
</configuration>
三.寄宿iis
类库输出目录为bin/
CalculatorService.svc
文件
<%@
ServiceHost
Service
=
"Services.CalculatorService"%>
四.客户端调用
static
void
Main(string[] args)

{

using (ChannelFactory<ICalculator>
channelFactory = new
ChannelFactory<ICalculator>("calculatorservice"))

{

ICalculator proxy = channelFactory.CreateChannel();

using (proxy
as
IDisposable)

{

DataTable dt = proxy.Add(1, 2);

Console.WriteLine(proxy.Divide(1, 2));

Console.WriteLine(proxy.Multiply(1, 2));

Console.WriteLine(proxy.Subtract(1, 2));

}

}

}
配置文件:
<?xml
version="1.0"
encoding="utf-8" ?>
<configuration>

<system.serviceModel>

<client>

<endpoint
address="http://127.0.0.1/Services/calculatorservice.svc"

binding="wsHttpBinding"

contract="Contracts.ICalculator"

name="calculatorservice">

</endpoint>

</client>

</system.serviceModel>
</configuration>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐