Если каждый пользователь получит такое же меню:
Вы должны рассмотреть вопрос о создании его в приложении «Cache» - Application [ «MyMenu»] или статическое поле на одну ваших объектов ,
Основная причина этого - срок службы. Если вы поместите его в объект уровня приложения, он будет длиться всю жизнь приложения. Помещая его на объект уровня сеанса, он будет потерян, когда этот сеанс закончится - при запуске сеанса для каждого пользователя, вы скоро обнаружите, что перехватываете данные.
С другой стороны ... если оно уникально для каждого пользователя:
Сеанс обеспечивает удобное место, чтобы положить эти данные, так как он является уникальным для этого пользователя, и не будет долго жить дальше этот пользователь покидает сайт.
Также подумайте о:
Если вы действительно думаете, память будет проблемой, или вы хотите, чтобы точно определить, как долго вы держите его за
Положите его в кэш. Вы можете определить количество времени, в котором он живет в кеше, и, кроме того, кеш начнет сбрасывать объекты, когда он становится коротким в памяти, поэтому он более чувствителен к нагрузке, чем другие параметры.
Существует хорошее обсуждение Session vs Cache on SO already
Дополнительно
Вы уверены, что ваше меню является то, что большой? Если это так, вы можете рассмотреть альтернативы - насколько велики вы говорите?
supose у меня есть 4 роли. это означает, что только 4 меню кэшируется в памяти, и в соответствии с пользователем роли пользователь использовал это меню m i правильно? – Areeb
да, или, может быть, вы можете просто поместить его в состояние приложения, которое звучит более разумно, так как вам не нужно их обновлять, кеш, предположительно, должен хранить данные, которые необходимо обновить, и ваш веб-сервер может отбросить объекты кеша при большой нагрузке, но приложение Состояние можно сохранить навсегда, проверьте это: http://msdn.microsoft.com/en-us/library/94xkskdf.aspx –