public static List<MethodInfo> GetMethodsBySignature(Type type, Type returnType, params Type[] parameterTypes) { var allMethods = new List<MethodInfo>(type.GetMethods(AllInstanceMethodsBindingFlags)); return allMethods.FindAll(delegate(MethodInfo methodInfo) { if (methodInfo.ReturnType != returnType) return false; var parameters = methodInfo.GetParameters(); if ((parameterTypes == null || parameterTypes.Length == 0)) return parameters.Length == 0; if (parameters.Length != parameterTypes.Length) return false; for (int i = 0; i < parameterTypes.Length; i++) { if (parameters[i].ParameterType != parameterTypes[i]) return false; } return true; }); }
public static List<PropertyInfo> GetPropertiesByType(Type type, Type propertyType) { var allProperties = new List<PropertyInfo>(type.GetProperties()); //Debug.Log(string.Format("GetPropertiesByType [{0}, {1}]", type, propertyType)); return allProperties.FindAll(delegate(PropertyInfo propertyInfo) { //Debug.Log(string.Format(" [{0}, {1}]", propertyInfo.PropertyType, propertyType)); return propertyInfo.PropertyType == propertyType; }); }
private static List<DisplayListMember> GetChildrenWithDepth(List<DisplayListMember> depthList, int depth) { return depthList.FindAll(delegate(DisplayListMember displayListMember) { return displayListMember.Depth == depth; }); }