public MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria)
{
List<MemberInfo> members = new List<MemberInfo>();
if ((memberType & MemberTypes.Constructor) != 0)
{
AddMembers(members, filter, filterCriteria, GetConstructors(bindingAttr));
}
if ((memberType & MemberTypes.Method) != 0)
{
AddMembers(members, filter, filterCriteria, GetMethods(bindingAttr));
}
if ((memberType & MemberTypes.Field) != 0)
{
AddMembers(members, filter, filterCriteria, GetFields(bindingAttr));
}
if ((memberType & MemberTypes.Property) != 0)
{
AddMembers(members, filter, filterCriteria, GetProperties(bindingAttr));
}
if ((memberType & MemberTypes.Event) != 0)
{
AddMembers(members, filter, filterCriteria, GetEvents(bindingAttr));
}
if ((memberType & MemberTypes.NestedType) != 0)
{
AddMembers(members, filter, filterCriteria, GetNestedTypes(bindingAttr));
}
return members.ToArray();
}