AspectSharp.Core.Matchers.DefaultJoinPointMatcher.Match C# (CSharp) 메소드

Match() 공개 메소드

public Match ( MethodInfo method ) : AspectSharp.Lang.AST.PointCutDefinition[]
method System.Reflection.MethodInfo
리턴 AspectSharp.Lang.AST.PointCutDefinition[]
		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));
		}