Как получить доступ к кэшированному значению со страницы Application_start (Global.asax.cs) для выполнения всего проекта с использованием Hashtable C #? - PullRequest
0 голосов
/ 16 октября 2019

Я создал хеш-таблицу и добавил в нее ключи и значение и, наконец, получил кеш-таблицу. Теперь, как я могу использовать кэшированные значения на всех страницах, используя их ключ?

 Hashtable Hashtable = new Hashtable();
 Hashtable.Add("Example1", ConfigurationManager.AppSettings["Example1"]);
 Hashtable.Add("Example2", ConfigurationManager.AppSettings["Example1"]);
 Hashtable.Add("Example3", ConfigurationManager.AppSettings["Example3"]);
 HttpContext.Current.Application["Example"] = Hashtable;

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Использование Внедрение зависимостей . Что вам конкретно нужно, так это внедрить Hashtable, используя AddSingleton, чтобы во всем приложении был один экземпляр. На этом этапе ASP.NET должен вручать вам один и тот же объект каждый раз, когда один из ваших классов Controller запрашивает его в своем конструкторе.

Обычно вы хотите обернуть такую ​​функциональность в службе и предоставить эту службу, используя толькоИнтерфейс, который вы можете изменить реализацию позже.

0 голосов
/ 16 октября 2019

Я нашел решение для этой конкретной ситуации. На любой странице мы должны создать объект хеш-таблицы и использовать этот объект с ключом для доступа к этому значению. Пример:

Hashtable CacheObj = (Hashtable)HttpContext.Current.Application["Example"];

string str = CacheObj["Example1"].ToString()
...