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; } } }