31 lines
419 B
C#
31 lines
419 B
C#
|
using System;
|
||
|
|
||
|
namespace Aitex.Core.Util
|
||
|
{
|
||
|
[Serializable]
|
||
|
public class Singleton<T> where T : class, new()
|
||
|
{
|
||
|
private static volatile T instance;
|
||
|
|
||
|
private static object locker = new object();
|
||
|
|
||
|
public static T Instance
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (instance == null)
|
||
|
{
|
||
|
lock (locker)
|
||
|
{
|
||
|
if (instance == null)
|
||
|
{
|
||
|
instance = new T();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return instance;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|