WCF发布多个服务

管理员
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WcfServiceLibrary1;
using System.ServiceModel.Configuration;
using System.Configuration;
using System.Reflection;
using System.ServiceModel;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //将指定的客户端配置文件作为Configuration打开
            Configuration conf = ConfigurationManager.OpenExeConfiguration(Assembly.GetCallingAssembly().Location);
            ServiceModelSectionGroup svcmode = (ServiceModelSectionGroup)conf.GetSectionGroup("system.serviceModel");

            ServiceHost host = null;
            foreach (ServiceElement el in svcmode.Services.Services)
            {
                //string serviceNameSpace = el.Name.Substring(0, el.Name.LastIndexOf('.'));
                string serviceNameSpace = el.Name.Split('.')[0];
                Type svcType = Type.GetType(el.Name + "," + serviceNameSpace);
                if (svcType == null)
                    throw new Exception("Invalid Service Type " + el.Name + " in configuration file.");
                host = new ServiceHost(svcType);

                host.Opened += delegate
                {
                    Console.WriteLine(el.Name + "服务已经启动了");
                };

                host.Open();
            }
         
               Console.Read();
        }
    }

这里注意引入System.Configuration命名空间

运行结果: