Example #1
0
 private static object GetMember(EntityMap entityMap, object entityObject, string keyMember)
 {
     if (entityMap.HasHelper)
     {
         return(((IObjectHelper)entityObject)[keyMember]);
     }
     else
     {
         try {
             // Improved Support for Embedded Objects from Chris Schletter (http://www.thzero.com)
             object   memberValue = entityObject;
             string[] memberParts = keyMember.Split('.');
             for (int index = 0; index < memberParts.Length; index++)
             {
                 string     typeName    = memberValue.GetType().ToString();
                 MemberInfo memberField = EntityMap.FindField(typeName, memberParts[index]);
                 if (memberField is FieldInfo)
                 {
                     memberValue = (memberField as FieldInfo).GetValue(memberValue);
                 }
                 else
                 {
                     memberValue = (memberField as PropertyInfo).GetValue(memberValue, null);
                 }
             }
             return(memberValue);
         }
         catch (Exception exception) {
             throw new ORMapperException("GetField failed for " + keyMember, exception);
         }
     }
 }