2015-01-04 46 views
0

创建我的WCF客户端动态地在C#(WinForm的 - 台式机)的条目用下面的代码:我必须拥有的app.config动态WCF

我的问题是,如果我提供的端点是没有在我的appconfig文件中提到它会引发错误,告诉我它没有找到。

我必须有一个终结点在我的AppConfig specifed对我来说,使用此代码:

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(); 

我可以以某种方式调整我的代码,以便它是独立于任何“资源”的文件?

感谢

+1

你不需要任何的app.config做WCF在你的代码。但我们无法帮助你解决“我似乎需要”的问题。我的clairvoyance-over-tcp/ip设备仍在维护中。目前,我只能帮你解决你发布的错误。 – nvoigt 2015-01-04 11:56:45

+0

@nvoigt嗨,对不起,延迟。已经离开。下面有一个答案似乎解决了我的问题。我一直热衷于让自己更好。虽然我不确定你的意见是什么意思。如果需要,我可以修改我的问题。只需要知道如何/为什么?我想你问的是为什么我需要这样做?嗯,这是因为事情可能会改变,并且应用程序会(通过已知来源)进行初始Web服务调用,以获取将影响/更改与Web服务器通信的其余应用程序的配置设置,因为我将拥有多个Web服务器你做不同的事情。 – 2015-01-04 12:34:22

+0

@nvoigt我忘了说谢谢发表您的评论:) – 2015-01-04 12:38:31

回答

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(); 
+0

嗨,对不起,延误。已经离开。我同意你的观点,但我处于一种独特的情况,它不能依赖于一个appconfig文件。我没有包含端点名称,因为它看起来不相关?这是你看到我的问题的重点。可互换的EndPoint名称(这是有原因的,它不在我的控制之下) – 2015-01-04 12:36:48

+0

它的工作原理 - 谢谢。这样一个简单的答案。我现在感觉有点厚,因为没有尝试这个我自己大声笑 – 2015-01-04 12:37:53

+0

好吧,当然,你会有一个原因:)现在它的工作? – khlr 2015-01-04 12:38:46

相关问题