2015-01-04 61 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

相關問題