Просто используйте Caching Application Block , если вы не хотите изобретать велосипед. Если вы все еще хотите использовать кеш ASP.NET- , см. Здесь . Я уверен, что это работает только с .NET 2.0 и выше, хотя. Просто невозможно было использовать кеш вне ASP.NET в .NET 1.
На странице MSDN также есть большое предупреждение о документации кеша:
Класс Cache не предназначен для использования вне приложений ASP.NET. Он был разработан и протестирован для использования в ASP.NET для обеспечения кэширования веб-приложений. В других типах приложений, таких как консольные приложения или приложения Windows Forms, кэширование ASP.NET может работать неправильно.
Для очень легкого решения, где вам не нужно беспокоиться об истечении срока действия и т. Д., Тогда достаточно словарного объекта.
Если у процесса нет разрешений на определение существования файла, он вернет false. Файл можно открыть, но обычными методами нельзя определить, существует ли он.
Если ситуации, когда он не работает, включают запуск его от имени другого пользователя, а вы используете Windows Vista / Windows 7, это может быть вызвано VirtualStore, механизмом, при котором Windows позволяет непривилегированному пользователю «писать» места, которые он обычно не может. Однако изменения хранятся в "% USERPROFILE% \ AppData \ Local \ VirtualStore \", который является личным для каждой учетной записи пользователя.
Я наблюдаю следующую ситуацию на Windows 7:
file.exists() == false
file.getAbsoluteFile().exists() == true
Файл, о котором идет речь - "var\log", абсолютный путь действительно ссылается на существующий файл, который находится в обычном подкаталоге (не в виртуальном хранилище). Это видно из IDE.