手动WCF和ChannelFactory

手动WCF和ChannelFactory,wcf,channelfactory,Wcf,Channelfactory,我刚刚开始使用WCF,正在使用Miguel A.Castro发布的一篇名为。在文章中,他提到使用ChannelFactory创建服务代理。在本文中,他展示了创建代理的代码: IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>().CreateChannel(); IPProductAdmin productAdminChannel=new ChannelFactory().CreateChann

我刚刚开始使用WCF,正在使用Miguel A.Castro发布的一篇名为。在文章中,他提到使用ChannelFactory创建服务代理。在本文中,他展示了创建代理的代码:

IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>().CreateChannel();
IPProductAdmin productAdminChannel=new ChannelFactory().CreateChannel();
当我尝试将该代码与web.config中配置的端点一起使用时,我不断收到关于该端点为null的错误。很明显,如果我在ChannelFactory构造函数上指定端点的名称,它是有效的,但这似乎不是可重用性的最佳选择。但如果我这样做,它似乎也起作用:

IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>("*").CreateChannel();
IPProductAdmin productAdminChannel=new ChannelFactory(“*”).CreateChannel();

这仅仅是ChannelFactory类工作方式的一个变化吗(因为这篇文章已经快2年了)?创建WCF服务代理和可重用性的“最佳实践”是什么?

我不能为原始文章辩护,但可能这只是作者的疏忽?据我所知,您文章中的第二个清单始终是使用配置文件创建频道的方法。传递*将使用文件中通道类型的默认/第一个配置。如果同一类型有多个命名配置,则还可以传递特定名称而不是*


我已经使用(“*”)路由好几年了,如果每种类型只有一个端点,这是一个很好的选择。

您能给我们展示一下您的web.config吗??在引用IPProductAdmin接口的部分中是否有端点??从你的代码中我可以看出,你的方法似乎还不错……如果你还没有——你还必须观看由米格尔·卡斯特罗主持的名为“极限WCF”的DNR电视节目——强烈推荐!可能的副本是否有关于此的任何文档?