今天写了一个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下载