ASP.NET Cache и связанный CacheDependency не зависят от ASP.NET, IIS или веб-сервера. Вы можете использовать его для этой конкретной ситуации. Он требует гораздо меньше усилий для работы, чем блок приложения для кэширования библиотеки предприятия, и более широко используется и документируется.
Некоторые дополнительные ссылки:
http://aspalliance.com/1705_A_New_Approach_to_HttpRuntimeCache_Management.all
Если вы хотите использовать логику ASP.NET Cache в вашей DLL, просто оберните ее и назовите ее так:
using System.Web.Caching;
...
var cache = HttpRuntime.Cache;
cache.Insert("foo", foo);
Этот код, наряду с любой FileSystemDependency, которую вы хотите добавить к нему, будет одинаково хорошо работать в вашей библиотеке независимо от того, работает ли он в веб, winform, консоли или контексте службы.
Вы также можете сделать это, если хотите использовать тот же кеш, что и в Интернете, но это необязательно:
HttpContext context = HttpContext.Current;
if(context != null)
{
_cache = context.Cache;
}
else
{
_cache = HttpRuntime.Cache;
}