using System;using System.Collections.Generic;using System.Text;using System.Configuration;namespace PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler{ struct ProxyConfigurationItem { public string Name; public string AssemblyLocation; public string ClassName; public int ExecutionInterval; public byte Priority; public byte LogLevel; public int AlarmIfTakesMore; public int AlertIfTakesMore; }
SectionHandler
using System;using System.Collections.Generic;using System.Text;using System.Configuration;using System.Xml;namespace PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler{ class ProxyConfigurationHandler : IConfigurationSectionHandler { public ProxyConfigurationHandler() { } public object Create(object parent, object configContext, System.Xml.XmlNode section) { List<ProxyConfigurationItem> items = new List<ProxyConfigurationItem>(); System.Xml.XmlNodeList processesNodes= section.SelectNodes("Proceso"); //process each Node "Proceso" foreach (XmlNode processNode in processesNodes){ ProxyConfigurationItem item = new ProxyConfigurationItem(); item.Name = processNode.Attributes["Name"].InnerText; item.AssemblyLocation = processNode.Attributes["Assembly"].InnerText; item.ClassName = processNode.Attributes["Clase"].InnerText; item.ExecutionInterval = Convert.ToInt16(processNode.Attributes["Interval"].InnerText); item.Priority = Convert.ToByte(processNode.Attributes["Prioridad"].InnerText); item.LogLevel = Convert.ToByte(processNode.Attributes["LogLevel"].InnerText); item.AlertIfTakesMore = Convert.ToInt32(processNode.Attributes["AlertIfTakesMore"].InnerText); item.AlarmIfTakesMore = Convert.ToInt32(processNode.Attributes["AlarmIfTakesMore"].InnerText); items.Add(item); } return items; } }}
<section name="ProxyConfiguracionProcesos" type="PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler.ProxyConfigurationHandler, PIENSA.UI.Service.ComunicacionAutomata" />
private List<PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler.ProxyConfigurationItem> GetProcessesConfiguration() { List<PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler.ProxyConfigurationItem> processesConfig= (List<PIENSA.UI.Service.ComunicacionAutomata.ConfigurationHandler.ProxyConfigurationItem>)System.Configuration.ConfigurationSettings.GetConfig("ProxyConfiguracionProcesos"); return processesConfig; }