public static PropertyInfo[] PropiedadesDelObjeto(this object objeto) { var indice = objeto.GetType().FullName; var cache = ServicioDeCaches.Obtener(nameof(Type.GetProperties)); if (!cache.ContainsKey(indice)) { Type t = objeto.GetType(); cache[indice] = t.GetProperties(); } PropertyInfo[] props = (PropertyInfo[])cache[indice]; return(props); }
public static bool TienenLaPropiedad(this Type tipo, string propiedad) { var cache = ServicioDeCaches.Obtener(nameof(Type.GetProperties)); var indice = tipo.FullName; if (!cache.ContainsKey(indice)) { cache[indice] = tipo.GetProperties(); } foreach (var p in (PropertyInfo[])cache[indice]) { if (p.Name.ToLower() == propiedad.ToLower()) { return(true); } } return(false); }