Hello WCF - WCF应用起步
1. 构建服务层
新建一个空白解决方案,增加一个项目用来存放WCF服务-HelloWCF.Service
确保该项目引用System.Model
1) 构建服务契约
新建一个接口
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace HelloWCF.Service
{
[ServiceContract]
interface IHelloWorldService
{
[OperationContract]
String GetMessage(String name);
}
}
2)根据服务契约实现服务
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HelloWCF.Service
{
public class HelloWorldService : IHelloWorldService
{
public String GetMessage(String name)
{
return "Hello world from " + name + "!";
}
}
}
2. 寄宿服务于ASP.NET开发服务器
右击解决方案,新建网站,选择一个空的网站
给网站添加服务项目的引用
打开网站属性页
将使用动态端口设为false
设置端口号, eg:8080
给网站增加svc文件
HelloWorldService.svc
3. 新建客户端
新建一个控制台项目用于客户端
生成代理和配置文件
在控制台使用svcutil.exe
cd C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin>svcutil.exe http://localhost:8080/HostDevServer/HelloWorldService.svc?wsdl /out:HelloWorldServiceRef.cs /config:app.config
定制客户端应用程序
生成文件:HelloWorldServiceRef.cs和app.config添加到Client项目
给项目添加System.ServiceModel引用
修改Program.cs,代码如下:
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HelloWorldClient
{
class Program
{
static void Main(string[] args)
{
HelloWorldServiceClient client = new HelloWorldServiceClient();
Console.WriteLine(client.GetMessage("Mike Liu"));
Console.ReadKey();
}
}
}
运行客户端应用程序
Ctrl+F5启动HostDevServer
右键Client项目,设为启动,Ctrl+F5启动
运行结果:
Hello World from David Gu
把服务项目设为自动启动
右键解决方案->属性->通用属性->启动项目->多启动项目
HostDevServer: 开始执行不调试
Client: 开始执行不调试
启动:
HostDevServer先启动,然后会自动启动Client