示例#1
0
        public IPointCutExpression PointCut(CutPointFlags flags)
        {
            var pointCut = new PointCutExpression(flags);

            info.AddPointCut(pointCut);
            return(pointCut);
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="signature"></param>
        /// <param name="method"></param>
        /// <param name="flags"></param>
        /// <returns></returns>
        protected virtual bool NameMatch(IMethodSignature signature, MethodInfo method, CutPointFlags flags)
        {
            String sign = signature.Method;
            String name = method.Name;

            if (sign.IndexOf('*') != -1)
            {
                return(Regex.IsMatch(name, sign));
            }

            if ((method.IsSpecialName && (((int)(flags & CutPointFlags.Property)) != 0)) ||
                (name.StartsWith("get_") && (((int)(flags & CutPointFlags.PropertyRead)) != 0)) ||
                (name.StartsWith("set_") && (((int)(flags & CutPointFlags.PropertyWrite)) != 0)))
            {
                name = name.Substring(4);
            }

            return(name.Equals(sign));
        }
示例#3
0
 public PointCutExpression(CutPointFlags flags)
 {
     signature = new MethodSignature {
         Flags = flags
     };
 }
示例#4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="signature"></param>
        /// <param name="method"></param>
        /// <param name="flags"></param>
        /// <returns></returns>
        protected virtual bool NameMatch(IMethodSignature signature, MethodInfo method, CutPointFlags flags)
        {
            String sign = signature.Method;
            String name = method.Name;

            if (sign.IndexOf('*') != -1)
                return Regex.IsMatch(name, sign);

            if ((method.IsSpecialName && (((int)(flags & CutPointFlags.Property)) != 0)) ||
                (name.StartsWith("get_") && (((int)(flags & CutPointFlags.PropertyRead)) != 0)) ||
                (name.StartsWith("set_") && (((int)(flags & CutPointFlags.PropertyWrite)) != 0)))
                name = name.Substring(4);

            return name.Equals(sign);
        }