我处于需要开发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;
}

10-07 21:09