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