// Обновление на основе комментария
Кэш уникален для каждого домена приложения, поэтому вам не нужно беспокоиться. См. MSDN здесь
Существует один экземпляр кэша
класс для домена приложения. Как
результат, объект Cache, который
возвращаемое свойство Cache является
Объект кэширования для всех запросов в
домен приложения.
// Оригинальный ответ
Я не уверен, что понимаю ваш вопрос. Все в кэше доступно глобально (или, по крайней мере, доступно любому, у кого есть доступ к объекту кэша).
Этот код будет безопасным, если он является единственным местом, к которому вы получаете доступ к объекту.
private static readonly object lockme = new object();
public void SetDictionaryValue(string key, string value)
{
lock (lockme)
{
var lookup = (Dictionary<string, string>)GetFromCache("LookupDictionary");
lookup["key"] = value;
}
}
public string GetDictionaryValue(string key)
{
lock (lockme)
{
var lookup = (Dictionary<string, string>)GetFromCache("LookupDictionary");
return lookup["key"];
}
}
Но да, безопасность не гарантируется, поскольку может существовать другой код, который извлекает словарь из кэша где-то еще и модифицирует его. Не уверен, как ты мог гарантировать, что этого не произойдет. Я имею в виду, что вы можете использовать GUID в качестве ключа, но вы все равно можете перебирать все переменные кэша.
Я не уверен, что помогу вам здесь?