如何产生WCF服务

问题描述:

如何生成代理的代理,这是我的服务:如何产生WCF服务

using System; 

// Service.cs file 
namespace FirstWcfService 
{ 
    public class Service : IService 
    { 
     #region IService Members 

     public string Hello() 
     { 
      return ("Hello WCF"); 
     } 

     #endregion 
    } 
} 
+0

如果你使用一个通道工厂,你不需要。这很符合你的要求。看到答案,您的其他问题 – 2010-02-12 15:54:05

首先,确保您要引用的服务已启动并正在运行。

然后,在Visual Studio的解决方案资源管理器,平“添加服务引用”:

alt text http://i46.tinypic.com/nmz4ox.png

在出现,输入您的服务地址,然后单击“转到”对话框:

alt text http://i45.tinypic.com/282008m.png

这应该连接到您的服务,探索的元数据,如果一切顺利的话,你会在卵石的中间部分看到您的服务(该服务合同及其方法) N:

alt text http://i50.tinypic.com/5p2wyf.png

在单击“确定”太快 - 注重在左下角的文本框“命名空间” - 你可以输入一个命名空间中,你的服务引用(类它生成)将生活。我通常使用类似(project).(servicename).Adapter的东西 - 选择对您有意义的任何内容。

现在,在Solution Explorer中,你会看到你刚刚提到的服务的新图标 - 当你点击“显示所有文件”按钮,在解决方案资源管理器工具栏上,你会看到所有的生成的文件。你的班级居住的那个总是叫做Reference.cs

alt text http://i50.tinypic.com/fp9uv6.png

当你敢不敢打开该文件:-),你会看到,你将拥有一个名为(yourservicename)Client类,这是你需要在你的客户端代码来实例化的东西 - 它会承载所有的定义的服务方法,您现在就可以从你的代码中调用:

alt text http://i48.tinypic.com/3143tyr.png

希望这有助于!

+0

优秀穿行马克! – ChrisF 2010-02-12 16:50:10

+0

@marc_s:不知道为什么,对我来说它不是生成(yourServiceName)客户端类。虽然我可以在上面的屏幕截图中看到它。任何想法? – 2014-08-17 13:05:04

在配置你的WCF服务的访问,你有两个选择:

选择一是使用自动生成的对象

var proxy = new MyServiceProxyClient(); 
proxy.open(); 
//do work 
proxy.close(); 

选项2是使用信道工厂

ChannelFactory<IMyService> channel = 
    new ChannelFactory<IMyService>("bindingNameFromYourConfigFile"); 
IMyService client = channel.CreateChannel(); 

client.DoAwesomeStuff(); 

这是一个非常有用的信息blog post您可能想了解何时以及为什么要使用这些方法。这screencast也会帮助你。