Наличие нескольких процессов с использованием того же кеша (memcached
в этом случае). Эти процессы являются:Генератор ключей с распределенным кешем
- ASP.NET MVC 4 приложения
- консольного приложения
Как я могу генерировать ключи кэша?
Я думал об использовании стратегии, которая принимает имя сборки, полное имя типа, имя метода и его параметры. Это будет выглядеть примерно так:
public static string GenerateKeyFor<T>(Expression<Action<T>> expr)
{
var method = Symbols.GetMethodInfo(expr);
var parameters = Symbols.GetParameters(expr);
var sb = new StringBuilder();
sb.Append(method.DeclaringType.FullName)
.Append(" - ")
.Append(method.Name)
.Append(" - ");
return parameters
.Aggregate(sb, AddParams)
.ToString();
}
Использование:
var key = CacheUtils.GenerateKeyFor<HomeController>(x => x.List());
Однако, если я хочу, то выселить экс. a ActionResult
в приложении ASP.NET MVC, из приложения Console, тогда мне нужно будет ссылаться на приложение ASP.NET MVC в моем приложении консоли, чтобы ссылаться на тип HomeController
. Есть ли лучший способ генерировать ключи для таких сценариев?