Program.cs

79 lines | 1.976 kB Blame History Raw Download
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using ConfigurationTool;
using ConfigurationTool.CustomSerializer;

namespace Console
{  
    public class ConfigData : BaseCustomSerialazible<ConfigData.ConfigData_Serial>
    {
        public class ConfigData_Serial
        {
            public class Item
            {
                public int Key { set; get; }
                public string Value { set; get; }
            }

            public string Name { set; get; }
            public int ID { set; get; }


            public List<Item> dictionary { set; get; }
        }

        public string Name { set; get; } = "n";
        public int ID { set; get; } = 23;

        public Dictionary<int, string> dictionary { set; get; } = new Dictionary<int, string>
        {
            [1]="1",
            [2]="2"
        };

        public override ConfigData_Serial Export()
        => new ConfigData_Serial()
            {
                ID = ID,
                Name = Name,
                dictionary = dictionary
                    .Select(e => 
                        new ConfigData_Serial.Item()
                        {
                            Key = e.Key,
                            Value = e.Value
                        }
                    )
                .ToList()
            };
        public override void Import(ConfigData_Serial obj)
        {
            ConfigData_Serial data = (ConfigData_Serial)obj;

            ID = data.ID;
            Name = data.Name;

            dictionary = data.dictionary
                .ToDictionary(e => e.Key, e2 => e2.Value);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var conf = new ConfigurationManager<ConfigData>(new ConfigParams()
            {
                ConfigFile = "Config.xml",
                Format = EnumFormat.XML,
                UseApplicationPathPrefix = true
            });

        }
    }
}