我使用以下代码在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;文件?
由于
答案 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();