using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml; namespace Mesnac.Equips.Connection.MPI { public partial class SetConfigForm : Form, Mesnac.Equips.Connection.ConnConfig { #region 单例模式 private static SetConfigForm _this; public static SetConfigForm Instance { get { if (null == _this) _this = new SetConfigForm(); return _this; } } #endregion public SetConfigForm() { InitializeComponent(); } ConnType thisConnType = new ConnType(); private void button1_Click(object sender, EventArgs e) { try { thisConnType.Rack = Convert.ToInt32(this.txtRack.Text); thisConnType.Slot = Convert.ToInt32(this.txtSlot.Text); thisConnType.MPI = Convert.ToInt32(this.txtMPI.Text); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } #region SetConfig GetConfig public Connection.ConnType SetConfig(Connection.ConnType connType) { ConnType Result = new ConnType(); if (connType != null) { Result = (ConnType)connType; } this.txtRack.Text = Result.Rack.ToString(); this.txtSlot.Text = Result.Slot.ToString(); this.txtMPI.Text = Result.MPI.ToString(); this.ShowDialog(); return thisConnType; } private bool GetFirstNodeValue(XmlNode node, string path, string attribute, bool throwException, out string value) { value = string.Empty; try { value = node.SelectNodes(path)[0].Attributes[attribute.ToLower()].Value.ToString(); } catch (Exception ex) { if (throwException) { throw (ex); } return false; } return true; } private bool GetNodeAttributeValue(XmlNode node, string attribute, bool throwException, out string value) { value = string.Empty; try { value = node.Attributes[attribute.ToLower()].Value.ToString(); } catch (Exception ex) { if (throwException) { throw (ex); } return false; } return true; } public Connection.ConnType GetConfig(XmlNode node) { ConnType Result = new ConnType(); string rack = "0"; string slot = "2"; string mpi = "3"; GetFirstNodeValue(node, ".//Rack[@value]", "value", true, out rack); GetFirstNodeValue(node, ".//Slot[@value]", "value", true, out slot); GetFirstNodeValue(node, ".//MPI[@value]", "value", true, out mpi); Result.Rack = Convert.ToInt32(rack); Result.Slot = Convert.ToInt32(slot); Result.MPI = Convert.ToInt32(mpi); return Result; } #endregion } public class ConnType : Mesnac.Equips.Connection.ConnType { public ConnType() { this.Rack = 0; //机架号默认为0 this.Slot = 2; //槽号默认为2 this.MPI = 3; //MPI地址默认为3 } /// /// 机架号 /// public int Rack { get; set; } /// /// 槽号 /// public int Slot { get; set; } /// /// MPI地址 /// public int MPI { get; set; } } }