如何产生WCF服务
如何生成代理的代理,这是我的服务:如何产生WCF服务
using System;
// Service.cs file
namespace FirstWcfService
{
public class Service : IService
{
#region IService Members
public string Hello()
{
return ("Hello WCF");
}
#endregion
}
}
首先,确保您要引用的服务已启动并正在运行。
然后,在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
希望这有助于!
优秀穿行马克! – ChrisF 2010-02-12 16:50:10
@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也会帮助你。
如果你使用一个通道工厂,你不需要。这很符合你的要求。看到答案,您的其他问题 – 2010-02-12 15:54:05