private static string getCacheKey(IInvocation invocation)
{
var cacheKey = invocation.Method.Name;
foreach (var argument in invocation.Arguments)
{
cacheKey += ":" + argument;
}
// todo: بهتر است هش اين كليد طولاني بازگشت داده شود
// كار كردن با هش سريعتر خواهد بود
return cacheKey;
}