using System; using System.Xml; using System.Configuration; using System.Collections.Generic; using Microsoft.Extensions.Configuration; namespace Ease.Core.Utility { //public abstract class ConfigElementTemplate // where ElementT : ConfigElementTemplate, new() //{ // protected XmlNamespaceManager _nm; // protected static ElementT GetConfig(string section) // { // return new ElementT(); //#### (ElementT)ConfigurationManager.GetSection(section); // } // //object IConfigurationSectionHandler.Create(object parent, object configContext, XmlNode section) // //{ // // try // // { // // _nm = new XmlNamespaceManager(section.OwnerDocument.NameTable); // // _nm.AddNamespace("_cfg_", section.NamespaceURI); // // Parse(section as XmlElement); // // return this; // // } // // catch (ConfigurationErrorsException) // // { // // throw; // // } // // catch (Exception e) // // { // // throw new ConfigurationErrorsException(e.Message, e, section); // // } // //} // protected void CheckRequiredAttributes(XmlElement node, params string[] attributes) // { // foreach (string attribute in attributes) // { // //#### // //if (!node.HasAttribute(attribute)) // // throw new ConfigurationErrorsException("Required Attribute: " + attribute + " is missing", node); // } // } // //protected void RaiseError(XmlElement node, string message, params object[] args) // //{ // // throw new ConfigurationErrorsException(string.Format(message, args), node); // //} // protected List ReadChildren(XmlElement node, string name) // where ChildT : ConfigChildElementTemplate, new() // { // List list = new List(); // AddChildren(node, name, list); // return list; // } // protected void AddChildren(XmlElement node, string name, IList list) // where ChildT : ConfigChildElementTemplate, new() // { // foreach (XmlElement childNode in node.SelectNodes("_cfg_:" + name, _nm)) // { // ChildT child = new ChildT(); // child._nm = _nm; // child.Parent = (ElementT)this; // try // { // child.Parse(childNode); // } // //#### // //catch (ConfigurationException) // //{ // // throw; // //} // catch (Exception e) // { // //#### // //throw new ConfigurationErrorsException(e.Message, e, childNode); // } // list.Add(child); // } // } // protected abstract void Parse(XmlElement node); //} //public abstract class ConfigChildElementTemplate : ConfigElementTemplate // where ElementT : ConfigChildElementTemplate, new() // where ParentT : ConfigElementTemplate, new() //{ // protected ParentT _parent; // public ParentT Parent // { // get { return _parent; } // internal set { _parent = value; } // } //} }