2011-01-10 41 views
2

我剛剛開始使用WCF,並使用由Miguel A. Castro發佈的舊文章,名爲WCF the Manual Way。在文章中他提到使用ChannelFactory創建服務代理。在文章中,他顯示了這個代碼來創建代理:手動WCF和ChannelFactory

IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>().CreateChannel(); 

當我嘗試使用與在web.config配置端點的代碼,我不斷收到關於此端點的是零誤差。如果我在ChannelFactory構造函數中指定了端點的名稱,但它看起來很有效,但這似乎不是重用性的最佳選擇。但是,這也似乎工作,如果我這樣做:

IProductAdmin productAdminChannel = new ChannelFactory<IProductAdmin>("*").CreateChannel(); 

這只是一個變化是如何的ChannelFactory類作品(因爲文章已經快2歲)?什麼是創建WCF服務代理和可重用性的「最佳實踐」?

+0

你可以**向我們展示**你的web.config?它是否在部分內引用了** IProductAdmin **接口?你的方法似乎沒問題,我可以從你的代碼中知道... – 2011-01-10 17:06:15

+0

如果你還沒有 - 你還必須觀看米格爾卡斯特羅稱爲「極端WCF」的DNR電視節目 - 強烈推薦! http://www.dnrtv.com/default.aspx?showNum=122 – 2011-01-10 17:07:05

回答

2

我不能說原文,但也許這只是作者的疏忽?據我所知,您的文章中的第二個列表一直是使用配置文件創建頻道的方式。傳遞*將在文件中使用通道類型的默認/第一個配置。如果您有多個相同類型的命名配置,您也可以傳遞特定名稱而不是*。

我一直在使用(「*」)路線好幾年了,如果您只有每個類型的一個端點,這是一個好方法。

相關問題