示例#1
0
 public static List <PropertyInfo> FindProperties <T>(Type type, FindMemberAttributeFilter <T> filter)
     where T : Attribute
 {
     return((from pi in type.GetProperties()
             let attrs = pi.GetCustomAttributes(typeof(T), true)
                         where attrs.Length == 1 && (filter == null || filter(attrs[0] as T))
                         select pi).ToList());
 }
示例#2
0
 public static FieldInfo FindField <T>(Type type, BindingFlags bindingFlags, FindMemberAttributeFilter <T> filter)
     where T : Attribute
 {
     return((from fi in type.GetFields(bindingFlags)
             let attrs = fi.GetCustomAttributes(typeof(T), true)
                         where attrs.Length == 1 && filter(attrs[0] as T)
                         select fi).FirstOrDefault());
 }