今天寫了一個WCF demo,給大家分享,說明如下
服務介面類庫WCFService.dll
服務實作類別庫WCFServicImp.dll
服務宿主專案WCFHost
用戶端調用項目:WCFTest
大家下載完DEMO啟動並執行時候,先運行伺服器端WCFHost,然後再運行用戶端WCFTest進行調用,關於資料庫伺服器的地址請自己配置
請大家注意下伺服器端和用戶端的app.config檔案,關於WCF服務的所有配置,都在這兩個檔案中進行配置,
用戶端調用服務的時候,要引用介面類庫 WCFService.dll
代碼
伺服器端宿主
public partial class Form1 : Form { public Form1() { InitializeComponent(); } static List<ServiceHost> _hosts = new List<ServiceHost>(); private void Form1_Load(object sender, EventArgs e) { //啟動伺服器端 Configuration conf = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location); ServiceModelSectionGroup svcmod = (ServiceModelSectionGroup)conf.GetSectionGroup("system.serviceModel"); foreach (ServiceElement el in svcmod.Services.Services) { Type svcType = Type.GetType(el.Name + "," + el.Name.Substring(0, el.Name.LastIndexOf('.'))); if (svcType == null) { throw new Exception("設定檔中的服務 [" + el.Name + "] 無效."); } ServiceHost hst = new ServiceHost(svcType); _hosts.Add(hst); hst.Open(); } } }
用戶端調用代碼
private void button1_Click(object sender, EventArgs e) { using (ChannelFactory<WCFService.ICity> channelFactory = new ChannelFactory<WCFService.ICity>("CityImp")) { WCFService.ICity proxy = channelFactory.CreateChannel(); this.dataGridView1.DataSource = proxy.GetAllCity().Tables[0]; } }
demo下載
http://download.csdn.net/detail/zx13525079024/3739270