XmlHelper.cs 2.71 KB
using Enyim.Caching.Configuration;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;

namespace Hh.Mes.Quartz
{
    public class ServiceConfig
    {
        [XmlElement("ServiceCode")]
        public string? ServiceCode { get; set; }

        [XmlElement("ServiceName")]
        public string? ServiceName { get; set; }

        [XmlElement("Cron")]
        public string? Cron { get; set; }

        [XmlElement("ClassName")]
        public string? ClassName { get; set; }

        [XmlElement("IsEnable")]
        public string? IsEnable { get; set; }

    }
    internal class XmlHelper
    {
        public static List<ServiceConfig> GetXmlToList()
        {
            List<ServiceConfig> config = new List<ServiceConfig>();
            string orgCodePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ServiceConfig.xml");
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(orgCodePath);
            //获取节点列表 
            XmlNodeList? topM = xmldoc.SelectNodes("//Service");
            if (topM != null)
            {
                foreach (XmlElement element in topM)
                {
                    ServiceConfig service = new ServiceConfig();
                    var serviceCodeNodes = element.GetElementsByTagName("ServiceCode");
                    if (serviceCodeNodes.Count > 0)
                    {
                        service.ServiceCode = serviceCodeNodes[0]?.InnerText;
                    }
                    var serviceNameNodes = element.GetElementsByTagName("ServiceName");
                    if (serviceNameNodes.Count > 0)
                    {
                        service.ServiceName = serviceNameNodes[0]?.InnerText;
                    }
                    var cronNodes = element.GetElementsByTagName("Cron");
                    if (cronNodes.Count > 0)
                    {
                        service.Cron = cronNodes[0]?.InnerText;
                    }

                    var classNameNodes = element.GetElementsByTagName("ClassName");
                    if (classNameNodes.Count > 0)
                    {
                        service.ClassName = classNameNodes[0]?.InnerText;
                    }

                    var isEnableNodes = element.GetElementsByTagName("IsEnable");
                    if (isEnableNodes.Count > 0)
                    {
                        service.IsEnable = isEnableNodes[0]?.InnerText;
                    }
                     
                    config.Add(service);
                }
            }
            return config;
        }
    }
}