ConfigurationManager.cs

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

using Tools.SingletonTool.Manager;
using Tools.ConfigurationTool.Config.Base;

namespace Tools.ConfigurationTool.Config.Custom
{      
    //Обеспечивате доступ к конфигу
    public sealed class ConfigurationManager<T1, T2> : ConfigurationManager<T1>
        where T1: class, new()
        where T2 : class, new()
    {
        private readonly SinglethonWithParamsManager<ConfigEntity<T1, T2>, ConfigParams<T1, T2>> SinglethonManager
            = new SinglethonWithParamsManager<ConfigEntity<T1, T2>, ConfigParams<T1, T2>>();

        internal override IConfigEntity<T1> ConfigEntity => SinglethonManager.Get;

        //При первом обращении необходимо использовать данный конструктор для иницилизации параметров конфига
        public ConfigurationManager(ConfigParams<T1,T2> param)
        {
            SinglethonManager
                = new SinglethonWithParamsManager<ConfigEntity<T1, T2>, ConfigParams<T1, T2>>(param);
        }

        //Для повторных обращений к конфигу
        public ConfigurationManager()
        {
            SinglethonManager
                = new SinglethonWithParamsManager<ConfigEntity<T1, T2>, ConfigParams<T1, T2>>();
        }
    }
}