using System;

namespace Aurora.Services
{
    public abstract class BaseService<T> where T : class
    {
        private static volatile Lazy<T> _instance = new Lazy<T>(() => CreateInstanceOfT());

        public static T Instance
        {
            get { return _instance.Value; }
        }

        private static T CreateInstanceOfT()
        {

            return Activator.CreateInstance(typeof(T), true) as T;

        }
    }
}