Использует ли Castle Windsor singleton правильный подход для кэширования данных только для чтения в ASP.NET - PullRequest
4 голосов
/ 25 ноября 2010

У меня есть класс .NET, который инициализирует некоторые фиксированные справочные данные только для чтения. Если я создаю экземпляр этого класса как Singleton в Castle Windsor в ASP.NET, то, вероятно, все попытки доступа к этому классу с помощью временных веб-вызовов будут считываться из единственного экземпляра справочных данных в памяти.

Это правильный подход? Есть ли минусы?

Ответы [ 2 ]

3 голосов
/ 25 ноября 2010

Определенно правильный подход.

Единственный недостаток, который я вижу, это то, что вы должны убедиться, что класс является вновь входящим - к нему могут обращаться несколько потоков одновременно.

0 голосов
/ 13 марта 2016

ASP.NET имеет довольно эффективную структуру кэширования (https://msdn.microsoft.com/en-us/library/6hbbsfk6.aspx), которая может сделать это за вас, справиться со временем истечения срока действия, приоритизацией, может удалить элементы из кэша, когда у вас мало памяти и т. Д.

Как и все, это зависит от вашего варианта использования - сколько данных у вас есть, в какой форме, и т. Д.

...