Распространяется ли синглтон через другие приложения? - PullRequest
5 голосов
/ 11 октября 2010

Мне интересно: если я создам одноэлементный класс с закрытым конструктором и одним статическим методом, который будет возвращать экземпляр этого класса, и помещу его в сборку, что произойдет, если я получу доступ к этому экземпляру из двух разных приложений? *

Будут ли приложения всегда использовать один и тот же экземпляр синглтона?

И если оба этих приложения выгружаются из памяти, экземпляр также будет освобожден?

Спасибо.

Ответы [ 4 ]

9 голосов
/ 11 октября 2010

Два разных приложения будут не совместно использовать объект, нет.Разумеется, они будут использовать один и тот же код для объекта, поскольку они загружают одну и ту же сборку, но каждый из них будет иметь свою собственную копию в собственном адресном пространстве.

Фактически - даже одно и то же приложение, запущенное дважды, не будет делить между собой фактический экземпляр Singleton.

2 голосов
/ 11 октября 2010

Класс Singleton будет для каждого домена приложения, поэтому если у вас есть несколько доменов приложений, которые загружают ваш класс Singleton, можно найти более 1 экземпляра вашего класса Singleton.

Перекрестный процесс Singleton не имеет никакогото есть у вас будут разные экземпляры

2 голосов
/ 11 октября 2010

Я так не думаю, без каких-либо действий у вас будет один синглтон на одно пространство приложения.

1 голос
/ 11 октября 2010

Нет, если вы специально не сделаете его общим синглтоном, сохранив / загрузив его в то же физическое место на диске или в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...