public static class Singleton<T> where T : class
{
private static T instance = default(T);
public static T Instance
{
get
{
if (instance == null)
{
instance = typeof(T).InvokeMember(typeof(T).Name, BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, null, null) as T;
}
return instance;
}
}
}