标题: WCF学习之二:如何调用使用(图文结合) [打印本页] 作者: 一级菜鸟 时间: 2013-7-11 16:49 标题: WCF学习之二:如何调用使用(图文结合) 上一篇是转载的一篇文章,本人地下也好好学习了一番WCF,在Console Application, Windows Forms Application, Web Application以及ASP.NET MVC中都去调用测试,调用方法都相似,没有特殊的地方。下面就从开始来说下WCF作为服务和其他Project的结合使用。(以VS2010为例)
1. 创建WCF Service Application 项目:
创建后会出现 WCF Service Application 项目。
其中:Iservice1是自带示例。下面再来添加一个service class:Service2。
在Service2中加一些测试的方法,例如:string TestMethedStr(int i); int TestMethedInt(int i); double TestMethedDou(int i,int j);所示:
IService2代码如下:
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace MyWcfService
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService2" in both code and config file together.
[ServiceContract]
public interface IService2
{
[OperationContract]
string TestMethedStr(int i);
[OperationContract]
int TestMethedInt(int i);
[OperationContract]
double TestMethedDou(int i, int j);
}
}
[/code]
Service2代码如下:
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace MyWcfService
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service2" in code, svc and config file together.
public class Service2 : IService2
{
public string TestMethedStr(int i)
{
return "param is:" + i;
}
public int TestMethedInt(int i)
{
return i;
}
public double TestMethedDou(int i, int j)
{
return i/j;
}
}
}
[/code]
Rebuild 项目,然后public。得到
2. 创建Console Application 项目:MyWCFConsole Project.
添加服务引用
在Address中输入,上面红色框中的地址,点击“GO”,
则可获得Service1服务,然后点击OK,引用成功,Service2类似。
在Main函数中,写入测试项
[code=csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWCFConsole.ServiceReference1;
using MyWCFConsole.ServiceReference2;
namespace MyWCFConsole
{
class Program
{
static void Main(string[] args)
{
Service1Client client = new Service1Client();
Service2Client client2 = new Service2Client();