static private Dictionary <String, MethodInfo> GetGetters(Type ClsO) { if (!mapClassGetters.ContainsKey(ClsO)) { MethodInfo[] meths = ClsO.GetMethods(); Dictionary <String, MethodInfo> methods = new Dictionary <String, MethodInfo>(); foreach (MethodInfo method in meths) { if (method.Name.StartsWith(PREFIX_GETTER)) { InvarRule anno = GetMethodAnnotation <InvarRule>(method); if (anno != null) { methods.Add(method.Name, method); //log (ClsO + " -> " + method.Name); String shortName = anno.S; if (shortName != null && shortName != String.Empty) { methods.Add(shortName, method); } } } } mapClassGetters.Add(ClsO, methods); } return(mapClassGetters[ClsO]); }
static private String GetRule(Type ClsO, String key, XmlNode n) { MethodInfo method = GetMethod(key, PREFIX_GETTER, GetGetters(ClsO), ClsO, n); if (method == null) { return(null); } String rule = null; InvarRule anno = GetMethodAnnotation <InvarRule>(method); if (anno != null && anno.T != String.Empty) { rule = anno.T; } return(rule); }