我是否必须在app.config中有动态WCF的条目

时间:2015-01-04 11:51:23

标签: c# wcf binding

我使用以下代码在C#(WinForm - Desktop)中动态创建我的WCF客户端:

我的问题是,如果我提供的apppoint文件中未提及的EndPoint会抛出错误,告诉我找不到它。

我是否必须在appconfig中指定一个端点供我使用此代码:

BasicHttpBinding binding = new BasicHttpBinding(endPoint);
binding.SendTimeout = new TimeSpan(TimeSpan.TicksPerMillisecond * 5000);;
EndpointAddress address = new EndpointAddress(uri);
ChannelFactory<InformedMotion.Engine.wsMotion.ISync2Channel> factory = new ChannelFactory<InformedMotion.Engine.wsMotion.ISync2Channel>(binding, address);
wcf = factory.CreateChannel();

我可以以某种方式调整我的代码,因此它独立于任何资源&#39;文件?

由于

1 个答案:

答案 0 :(得分:1)

它希望端点(其名称在您的代码示例中未共享的变量endpoint中)位于配置文件中。

我个人认为将大部分wcf配置放入配置文件是个好主意,因为在变更时你非常灵活。

但这不是必要的。您可以按照编程方式定义端点。只需将endpoint变量从BasicHttpBinding构造函数中删除,这不是必需的,并导致在配置文件中进行查找:

BasicHttpBinding binding = new BasicHttpBinding();
binding.SendTimeout = new TimeSpan(TimeSpan.TicksPerMillisecond * 5000);

EndpointAddress address = new EndpointAddress(uri);
var factory = new ChannelFactory<InformedMotion.Engine.wsMotion.ISync2Channel>(binding, address);

wcf = factory.CreateChannel();