public bool IsSatisfied(object datum)
{
bool satisfied = false;
MethodBase method = datum as MethodBase;
if (method != null)
{
ParameterInfo[] parameters = method.GetParameters();
if (parameters.Length == ExpectedParameterCount)
{
satisfied = true;
}
else if ((parameters.Length > 0) && (ExpectedParameterCount >= parameters.Length-1))
{
ParameterInfo lastParameter = parameters[parameters.Length - 1];
satisfied = lastParameter.GetCustomAttributes(typeof(ParamArrayAttribute), false).Length > 0;
}
}
return satisfied;
}