public static Dictionary <String, String> obterMapeamento(Type tipo, String sufixoMapeamento = "") { Dictionary <string, string> mapeamento = new Dictionary <string, string>(); //MapeamentoImplicito mi = tipo.GetCustomAttribute<MapeamentoImplicito>(true); //object[] attributes = tipo.GetCustomAttributes(typeof (MapeamentoImplicito), true); MapeamentoImplicito mi = tipo.obterAtributo <MapeamentoImplicito>(true); //attributes.FirstOrDefault() as MapeamentoImplicito; PropertyInfo[] propriedades = tipo.GetProperties(); if (mi == null) { foreach (PropertyInfo p in propriedades) { Mapear mapear = p.obterAtributo <Mapear>(true); if (mapear == null) { continue; } mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco, sufixoMapeamento)); } } else { foreach (PropertyInfo p in propriedades) { NaoMapear naoMapear = p.obterAtributo <NaoMapear>(true); if (naoMapear != null) { continue; } Mapear mapear = p.obterAtributo <Mapear>(true); if (mapear == null) { mapeamento.Add(p.Name, converteMapeamento(p.Name, sufixoMapeamento)); } else { mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco, sufixoMapeamento)); } } } return(mapeamento); }
public static IList <MapeamentoInfo> obterMapeamento(Type tipo, String sufixoMapeamento = "") { IList <MapeamentoInfo> mapeamento = new List <MapeamentoInfo>(); MapeamentoImplicito mi = tipo.obterAtributo <MapeamentoImplicito>(true); PropertyInfo[] propriedades = tipo.GetProperties(); if (mi == null) { foreach (PropertyInfo p in propriedades) { Mapear mapear = p.obterAtributo <Mapear>(true); if (mapear == null) { continue; } //mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco, sufixoMapeamento)); } } else { foreach (PropertyInfo p in propriedades) { NaoMapear naoMapear = p.obterAtributo <NaoMapear>(true); if (naoMapear != null) { continue; } Mapear mapear = p.obterAtributo <Mapear>(true); //if (mapear == null) // mapeamento.Add(p.Name, converteMapeamento(p.Name, sufixoMapeamento)); //else // mapeamento.Add(p.Name, converteMapeamento(String.IsNullOrEmpty(mapear.ColunaBanco) ? p.Name : mapear.ColunaBanco, sufixoMapeamento)); } } return(mapeamento); }