Пример #1
0
        public void WhereAssignableToType(TypePointcut pointcut)
        {
            Where(t =>
            {
                if (t.Interfaces.Select(i => i.Resolve()).Any(pointcut.MatchFull))
                {
                    return(true);
                }

                while (true)
                {
                    if (pointcut.MatchFull(t))
                    {
                        return(true);
                    }

                    if (t.BaseType == null)
                    {
                        return(false);
                    }

                    t = t.BaseType.Resolve();
                }
            });
        }
Пример #2
0
 public virtual void WhereHasCustomAttributeType(TypePointcut pointcut)
 {
     Where(p => p.CustomAttributes.Any(a => pointcut.MatchFull(a.AttributeType.Resolve())));
 }
Пример #3
0
 public void WhereType(TypePointcut crit)
 {
     Where(p => crit.MatchFull(p.PropertyType.Resolve()));
 }
Пример #4
0
 public void WhereReturnType(TypePointcut crit)
 {
     Where(m => crit.MatchFull(m.ReturnType.Resolve()));
 }
Пример #5
0
 public void WhereHasCustomAttributeType(TypePointcut type)
 {
     Where(m => m.CustomAttributes.Any(a => type.MatchFull(a.AttributeType.Resolve())));
 }
Пример #6
0
 public void WhereType(TypePointcut crit)
 {
     Where(f => crit.MatchFull(f.FieldType.Resolve()));
 }
Пример #7
0
 public void WhereInType(TypePointcut crit)
 {
     typeFilter.WhereAny(crit);
 }
Пример #8
0
 public void WhereImplementsType(TypePointcut pointcut)
 {
     Where(t => t.Interfaces.Select(i => i.Resolve()).Any(pointcut.MatchFull));
 }
Пример #9
0
 public void WhereNot(TypePointcut type)
 {
     Where(t => !type.MatchFull(t));
 }