所以我创建了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合约类并使用它,但这也不合适。
答案 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找到分步说明。