internal List <Getters> GetGetters(Type type) { List <Getters> val = null; if (_gettersCaches.TryGetValue(type, out val)) { return(val); } PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); List <Getters> getters = new List <Getters>(); foreach (PropertyInfo p in props) { if (!p.CanWrite && ShowReadOnlyProperties == false) { continue; } object[] att = p.GetCustomAttributes(typeof(System.Xml.Serialization.XmlIgnoreAttribute), false); if (att != null && att.Length > 0) { continue; } GenericGetter g = CreateGetMethod(type, p); if (g != null) { Getters gg = new Getters(); gg.Name = p.Name; gg.Getter = g; gg.PropertyType = p.PropertyType; getters.Add(gg); } } FieldInfo[] fi = type.GetFields(BindingFlags.Instance | BindingFlags.Public); foreach (var f in fi) { object[] att = f.GetCustomAttributes(typeof(System.Xml.Serialization.XmlIgnoreAttribute), false); if (att != null && att.Length > 0) { continue; } GenericGetter g = CreateGetField(type, f); if (g != null) { Getters gg = new Getters(); gg.Name = f.Name; gg.Getter = g; gg.PropertyType = f.FieldType; getters.Add(gg); } } _gettersCaches.Add(type, getters); return(getters); }
internal List<Getters> GetGetters(Type type) { List<Getters> val = null; if (_gettersCaches.TryGetValue(type, out val)) return val; PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); List<Getters> getters = new List<Getters>(); foreach (PropertyInfo p in props) { if (!p.CanWrite && ShowReadOnlyProperties == false) continue; object[] att = p.GetCustomAttributes(typeof(System.Xml.Serialization.XmlIgnoreAttribute), false); if (att != null && att.Length > 0) continue; GenericGetter g = CreateGetMethod(type, p); if (g != null) { Getters gg = new Getters(); gg.Name = p.Name; gg.Getter = g; gg.PropertyType = p.PropertyType; getters.Add(gg); } } FieldInfo[] fi = type.GetFields(BindingFlags.Instance | BindingFlags.Public); foreach (var f in fi) { object[] att = f.GetCustomAttributes(typeof(System.Xml.Serialization.XmlIgnoreAttribute), false); if (att != null && att.Length > 0) continue; GenericGetter g = CreateGetField(type, f); if (g != null) { Getters gg = new Getters(); gg.Name = f.Name; gg.Getter = g; gg.PropertyType = f.FieldType; getters.Add(gg); } } _gettersCaches.Add(type, getters); return getters; }