private DirectMethod[] GetMethods(BindingFlags bindingAttrs)
{
List<DirectMethod> list = new List<DirectMethod>();
Type tmpType = this.handlerType;
while (tmpType != null)
{
MethodInfo[] methodInfos = tmpType.GetMethods(bindingAttrs);
foreach (MethodInfo method in methodInfos)
{
if (!method.IsAbstract)
{
object[] attrs = method.GetCustomAttributes(typeof (DirectMethodAttribute), true);
if (attrs.Length > 0)
{
list.Add(new DirectMethod(method, (DirectMethodAttribute)attrs[0]));
}
}
}
tmpType = tmpType.BaseType;
}
return list.ToArray();
}