public static MethodInfo GetMethodInfoOf(VMBase viewModel, string targetMethodName) { MethodInfo[] methodInfoColl = viewModel.GetType() .GetRuntimeMethods() .Where(m => m.GetCustomAttributes(typeof(ViewToViewModelAttribute), false).Length > 0) .Where(m => ((ViewToViewModelAttribute)m.GetCustomAttribute(typeof(ViewToViewModelAttribute))).UniqueName.Equals(targetMethodName)) .ToArray(); if (methodInfoColl.Length == 0) { throw new BindableMethodNotFoundException(viewModel, targetMethodName); } return(methodInfoColl[0]); }
public static PropertyInfo GetListPropertyInfoOf <TPLD>(VMBase viewModel) where TPLD : IPLDBase { PropertyInfo[] propInfoColl = viewModel.GetType() .GetRuntimeProperties() .Where(m => m.GetCustomAttributes(typeof(ViewModelToViewAttribute), false).Length > 0) .Where(m => m.PropertyType.Equals(typeof(List <TPLD>))) .ToArray(); if (propInfoColl.Length == 0) { throw new BindablePropertyNotFoundException(viewModel, typeof(List <TPLD>)); } return(propInfoColl[0]); }