2

我刚刚开始使用 WCF,并且正在使用 Miguel A. Castro 发布的一篇较早的文章,称为WCF the Manual Way。在文章中他提到使用 ChannelFactory 创建服务代理。在文章中,他展示了创建代理的代码:

IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>().CreateChannel();

当我尝试将该代码与 web.config 中配置的端点一起使用时,我不断收到有关此端点为空的错误。Obvioulsy 如果我在 ChannelFactory 构造函数上指定端点的名称,它会起作用,但这似乎不是可重用性的最佳选择。但如果我这样做,它似乎也有效:

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

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

4

1 回答 1

2

我不能为原文说话,但也许这只是作者的疏忽?据我所知,您帖子中的第二个列表一直是使用配置文件创建频道的方式。传递 * 将使用文件中通道类型的默认/第一个配置。如果您有多个相同类型的命名配置,您还可以传递特定名称而不是 *。

我已经使用 ("*") 路由好几年了,如果你只打算每种类型有一个端点,这是一个很好的方法。

于 2011-01-10T17:54:08.610 回答