Если ваш список статичен или доступен по всему миру, значит, вы делаете что-то очень плохое.
ASP.Net структурирован таким образом, что каждый запрос к вашей странице - включая постбэки - от каждого пользователя приводит к новому экземпляру класса страницы. это много экземпляров страницы. Если ссылки на все эти экземпляры сохраняются где-то, эти экземпляры никогда не могут быть собраны мусором. Вы создали нечто похожее на утечку памяти, и вы быстро обнаружите, что ресурсы исчерпаны после развертывания в производство.
Действительно опасная вещь здесь в том, что если вы только выполняете функциональное тестирование и не тестируете нагрузку, проблема, скорее всего, вообще не обнаружится во время ваших тестов, потому что она будет хорошо работать для нескольких сотен (может быть, даже тысяч) запросов перед отправкой на вас.
Если вы беспокоитесь о динамическом управлении, есть несколько лучших способов справиться с этим:
- Установите фиксированное ограничение на максимальное количество элементов управления, которое вы разрешите, и добавьте все из них на страницу впереди. Затем только показывайте / отображайте их (переключаются через свойство
.Visible
) так, как вам нужно.
- Сделать это управляемым данными. Вместо того, чтобы динамически добавлять элемент управления, вставьте что-либо в таблицу базы данных, а затем привяжите запрос к этой таблице к повторителю или другому элементу управления данными (мой предпочтительный метод).
- Просто убедитесь, что вы воссоздаете каждый необходимый вам динамический элемент управления в нужном месте (Pre-Init) в жизненном цикле страницы.