private FieldAttAndValue[] GetFieldAttAndValues(ICatalogEntity entity) { BindingFlags flags = BindingFlags.GetProperty; Type t = entity.GetType(); PropertyInfo[] pInfos = t.GetProperties(); List <FieldAttAndValue> values = new List <FieldAttAndValue>(); foreach (PropertyInfo pInfo in pInfos) { object[] atts = pInfo.GetCustomAttributes(typeof(AttToFieldMapAttribute), true); if (atts == null || atts.Length == 0) { continue; } AttToFieldMapAttribute fieldAtt = atts[0] as AttToFieldMapAttribute; object fieldValue = t.InvokeMember(pInfo.Name, flags, null, entity, null); values.Add(new FieldAttAndValue(fieldAtt, fieldValue)); } return(values.ToArray()); }
public FieldAttAndValue(AttToFieldMapAttribute fieldAtt, object value) { FieldAtt = fieldAtt; Value = value; }