protected virtual void BuildWithParams(_IInvocation invocation, ParameterInfo[] parameters, string[] varyByParams, StringBuilder key)
{
for (var i = 0; i < parameters.Length; i++)
{
var argKey = "*";
if (varyByParams.Contains("*") || varyByParams.Contains(parameters[i].Name))
{
var arg = invocation.GetArgumentValue(i);
argKey = _hashCodeGeneratorProvider.GetForType(parameters[i].ParameterType).GetCode(arg);
}
key.Append($"{parameters[i].ParameterType.Name}:{argKey}, ");
}
}