但近日遇到需求,要將專案和 WCF 部屬在多個不同的客戶主機上,也就是相同的專案,但 WCF IP 是不同的,等於每部屬一台,專案上面的 Add Service Reference 就要重做一次,有一點點小麻煩。
於是 Google 了一下,找到方法能用程式動態實現 Add Service Reference 的方法,就是使用 Channel Factory。
程式碼如下:
BasicHttpBinding myBinding = new BasicHttpBinding(); // IP 和 PORT 可記錄在 Web.Config,再動態讀出來即可 EndpointAddress myEndpoint = new EndpointAddress("http://[IP]:[Port]/WCFService.svc"); // IWCFService 是 WCF 的 Interface Class ChannelFactory<IWCFService> myChannelFactory = new ChannelFactory<IWCFService>(myBinding, myEndpoint); IWCFService instance = myChannelFactory.CreateChannel(); Console.WriteLine(instance.GetData()); myChannelFactory.Close();
參考來源:C# Corner
沒有留言:
張貼留言