自托管wcf添加服务引用

时间:2011-12-07 00:18:45

标签: c# .net winforms wcf

所以我创建了winforms客户端并将wcf类库添加到解决方案中。

在winforms中我做

ServiceHost svc = new ServiceHost(typeof(...), new Uri("net.pipe://localhost/MyNamedPipe")

然后svc.Open()执行正常。

现在,如何在相同的winforms中添加服务引用,我可以获得该wcf的代理?

我只能通过使用在运行winforms时启动的ASP.NET Development Server来生成它,因此我复制了该url,停止了调试(Development Server仍在运行),然后从那里添加了一个服务引用。但我猜这不正确。

当然我可以直接引用wcf合约类并使用它,但这也不合适。

2 个答案:

答案 0 :(得分:4)

当您控制两端时,我更喜欢使用 ChannelFactory

NetNamedPipeBinding binding = new NetNamedPipeBinding();
EndpointAddress address = new EndpointAddress("net.pipe://localhost/MyNamedPipe");
ChannelFactory<YourInterface> factory = new ChannelFactory<YourInterface>(binding, address);
YourInterface yourInterface = factory.CreateChannel();

答案 1 :(得分:1)

您是否尝试过向服务项目添加服务参考...,然后直接在对话框的地址框中输入您的URI?

请注意,这应该是完整的URI,例如net.pipe:// localhost / MyNamedPipe。

您可以从MSDN here找到分步说明。