//用app.config实现wcf调用 ////定义contrat interface using System; using System.ServiceModel; using System.Text; namespace DataSericesContract { [ServiceContract(Name = "DataServicesContract", Namespace = "www.msdn.com")] public interface IDataObj { [OperationContract(Name = "MethodA", Action = "www.msdn.com/DataServicesContract/NameMethod", ReplyAction = "www.msdn.com")] string NameMethod(); [OperationContract(Name = "MethodB", Action = "www.msdn.com/DataServicesContract/AdminMethod", ReplyAction = "www.msdn.com")] string AdminMethod(); } } ///////////实现该接口类 using System; using System.ServiceModel; using System.Text; using DataSericesContract; namespace DataSerices { public class DataObj : IDataObj { #region IDataObj 成员 public string NameMethod() { return "IDataOjb.NameMethod invoked"; } public string AdminMethod() { return "IDataOjb.AdminMethod invoked"; } #endregion } } ///////////////////////service host using System; using System.Collections.Generic; using System.ComponentModel; using System.ServiceModel; using System.Drawing; using System.Text; using System.Windows.Forms; using DataSerices; using DataSericesContract; namespace ServiceHostWCF { public partial class HostWCF : Form { public HostWCF() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ServiceHost host = null; try { using (host = new ServiceHost(typeof(DataObj))) { host.Open(); this.button1.Enabled = false; this.toolstart.Text = "services start aucceed !"; } } catch (Exception ex) { MessageBox.Show(ex.Message); this.button1.Enabled = true; this.toolstart.Text = "Services start fail"; } finally { if (host != null) host.Close(); } } } } ///////////////////app.config////////////////////// <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="DataSerices.DataObj" behaviorConfiguration="serviceBehavior"> <endpoint address="DataObj" contract="DataSericesContract.IDataObj" binding="basicHttpBinding" /> <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/> <host> <baseAddresses> <add baseAddress="http://localhost:8900"/> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="serviceBehavior"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>