我正在使用一本名为“窗口通信基础4:一步一步”的书学习WCF。在第二章,有一个关于为 WCF 开发 windows 服务的教程。客户端与命名管道端点通信。
//WCF inside Windows service.
protected override void OnStart(string[] args)
{
productsServiceHost = new ServiceHost(typeof(ProductsServiceImpl));
NetNamedPipeBinding binding = new NetNamedPipeBinding();
productsServiceHost.AddServiceEndpoint(typeof(IProductsService),
binding, "net.pipe://localhost/ProductsServicePipe");
productsServiceHost.Open();
}
并且客户端在 App.config 中定义了一个端点
<endpoint address="net.pipe://localhost/ProductsServicePipe"
binding="netNamedPipeBinding" bindingConfiguration=""
contract="ProductsService.IProductsService"
name="NetNamedPipeBinding_IProductsService" />
我需要为“服务引用”创建一个代理对象,这不是我前面提到的 Windows 服务。
// Create a proxy object and connect to the service
// There service reference for "ProductsServiceClient" is
// "http://localhost:51397/ProductsService/Service.svc"
ProductsServiceClient proxy = new ProductsServiceClient("NetNamedPipeBinding_IProductsService");
没有“ProductsServiceClient”,我无法启动代理。当我连接到窗口服务时,为什么需要该服务参考。我无法清楚地理解这个概念。