using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using Mesnac.Compressor.Entity; namespace SocketProcess { public class TrayFactory { #region 单例模式 private static TrayFactory _trayFactory; private static readonly object sysany = new object(); public static TrayFactory Instance { get { if (_trayFactory == null) { lock(sysany) { _trayFactory = new TrayFactory(); } } return _trayFactory; } } #endregion public List SocketEquipList = new List(); private TrayFactory() { XmlRead(); } public void Init() { //XmlRead(); //InitSerial(); } private void XmlRead() { try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Config.xml"); //加载xml文件 XmlNode xn = xmlDoc.SelectSingleNode("Setting/Socket"); if (xn == null) { return; } XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; XmlNodeList xnf1 = xe.ChildNodes; SocketEqiup Socket = new SocketEqiup(); foreach (XmlNode xn2 in xnf1) { //Console.WriteLine(xn2.InnerText);//显示子节点点文本 XmlElement xmm = (XmlElement)xn2; if (xmm.Name == "IP") { Socket.IP = xmm.InnerText; continue; } else if (xmm.Name == "Port") { Socket.Port = xmm.InnerText; continue; } else if (xmm.Name == "Type") { Socket.EquipType = (EquipType)Convert.ToInt32(xmm.InnerText); continue; } } SocketEquipList.Add(Socket); } } catch (Exception e) { Console.WriteLine(e.ToString()); } } } }