我处于需要开发WCF客户端的情况,该客户端将具有不同的EndPoint URI,但其他设置将保持不变。我将从用户那里获取EndPoint URI。
因此,我想知道是否使用ChannelFactory来使用WCF服务,那么我是否需要有一个app.config文件,其中包含仅具有一个端点的WCF客户端配置,并且address属性将为空(我将其作为输入获取) (来自用户))还是我需要以编程方式使用该服务。
最佳答案
在配置文件中将端点留空。在您的代码中添加一种类似于以下方法的方法,该方法将EndpointAddress作为参数可以来自用户。使用此方法来创建最终将用于创建代理的channelfactory
private ChannelFactory<IService1> GetChannelFactory(string endpointAddress)
{
// create a binding that will be common
BasicHttpBinding myBinding = new BasicHttpBinding();
//get your uri from the user
EndpointAddress myEndpoint = new EndpointAddress(endpointAddress);
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint);
return myChannelFactory;
}