我使用以下代码在C# (WinForm - Desktop)中动态创建WCF客户端:
我的问题是,如果我提供了一个在我的appconfig文件中没有提到的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();我是否可以以某种方式调整我的代码,使其独立于任何“资源”文件?
谢谢
发布于 2015-01-04 12:04:27
它希望配置文件中有一个端点(其名称位于变量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();https://stackoverflow.com/questions/27765191
复制相似问题