| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using Aitex.Core.RT.Log;using System.Windows;using Aitex.Core.Util;namespace Aitex.Core.WCF{    public class WcfServiceManager : Singleton<WcfServiceManager>    {        List<ServiceHost> _serviceHost = new List<ServiceHost>();        public void Initialize(Type[] serviceType)        {            foreach (Type t in serviceType)            {                try                {                    ServiceHost host = new ServiceHost(t);                    host.Open();                    _serviceHost.Add(host);                }                catch (Exception ex)                {                    LOG.Write(0,MECF.Framework.Common.Equipment.ModuleName.System, t.Name, ex.Message);                    throw new ApplicationException(string.Format("初始化{0}服务失败,", t.ToString(), ex.Message));                }            }        }        public void Terminate()        {            foreach (var serviceHost in _serviceHost)            {                try                {                    serviceHost.Abort();                    serviceHost.Close();                }                catch (Exception ex)                {                    LOG.Write(eEvent.ERR_EXCEPTION, MECF.Framework.Common.Equipment.ModuleName.System, string.Format("关闭'{0}'服务失败 {1}", serviceHost.Description.Name, ex.Message));                }            }        }    }}
 |