У меня очень интересная ситуация, я выяснил, что синглтон-паттерн не все возможен с .net framework (любая версия)
посмотрите на этот код ниже
namespace SingletonPattern
{
class Singleton
{
private static readonly Singleton instance = new Singleton();
private static int mcount = 0;
private Singleton() {
mcount += 1;
Console.WriteLine("Creating {0} instances of Singleton Class", mcount.ToString());
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
class program
{
static void Main()
{
for (int i = 0; i < 1000; i++)
{
System.Activator.CreateInstance(Type.GetType("SingletonPattern.Singleton"), true);
}
Console.ReadLine();
}
}
}
с помощью System.activator любой собеседник может разорвать синглтон-паттерн.
так, кто в опасности?
любой парень, который написал какой-то компонент лицензирования, в котором лицензия реализована как шаблон синглтона.
Любой серверный код, использующий шаблон Singleton.
Может быть, я ошибаюсь или мое открытие не имеет смысла, но я просто хочу поделиться и хочу узнать ваше мнение?