Состояние приложения ASP.NET против статического объекта
-
08-07-2019 - |
Вопрос
Если у меня есть стандартное приложение ASP.NET, есть ли какая-то разница между созданием статического объекта по сравнению с переводом экземпляра объекта в состояние приложения?
Насколько я понимаю, оба объекта существуют ОДНАЖДЫ для домена приложения.
Во-вторых, что произойдет, если у вас есть статический объект в ссылочной dll для сайта ASP.NET. Он также является частью домена приложения, поэтому он всегда будет существовать один раз?
Решение
От: http://support.microsoft.com/ ? default.aspx SCID = кб, ан-нас; Q312607
ASP.NET включает состояние приложения в первую очередь для совместимости с классический ASP, чтобы легче было перенести существующие приложения в ASP.NET. Рекомендуется, чтобы вы хранить данные в статических членах класс приложения, а не в Объект приложения. Это увеличивает производительность, потому что вы можете получить доступ к статическая переменная быстрее, чем вы можете получить доступ к элементу в приложении словарь.
Кроме того, да, статические переменные ведут себя одинаково независимо от того, откуда они загружаются, и существуют ровно один раз для домена приложения (если вы не говорите о тех, которые помечены [ThreadStatic])