public virtual PointCutDefinition[] Match(MethodInfo method)
{
ArrayList list = new ArrayList();
foreach (PointCutDefinition pointcut in _pointcuts)
{
MethodSignature signature = pointcut.Method;
if (!FlagsMatchMethodType(method, pointcut))
{
continue;
}
if (signature != AllMethodSignature.Instance)
{
if (!NameMatch(signature, method, pointcut.Flags) ||
!ReturnTypeMatch(signature, method) ||
!AccessMatch(signature, method) ||
!ArgumentsMatch(signature, method))
{
continue;
}
}
list.Add(pointcut);
}
return (PointCutDefinition[]) list.ToArray(typeof (PointCutDefinition));
}