public static void SetPropertyValueFromReaderAdapeter(DataReaderAdapeter dataReaderAdapeter, object obj)
 {
     if (dataReaderAdapeter == null)
     {
         throw new ArgumentNullException("row");
     }
     if (obj == null)
     {
         throw new ArgumentNullException("item");
     }
     if (dataReaderAdapeter.obj == null)
     {
         ClassDelegateInfo classDelegateInfo = new ClassDelegateInfo {
             ColumnNames = dataReaderAdapeter.GetColumnNames(),
             MeberOperationHelperContainer = obj.GetType().GetMeberOperationHelperContainer(true)
         };
         dataReaderAdapeter.obj = classDelegateInfo;
     }
     SetPropertyValueFromReader(dataReaderAdapeter, obj, null);
 }
 private static void SetPropertyValueFromReader(DataReaderAdapeter dataReaderAdapeter, object obj, string subItemPrefix)
 {
     Type type = obj.GetType();
     ClassDelegateInfo classDelegateInfo = (ClassDelegateInfo) dataReaderAdapeter.obj;
     MeberOperationHelperContainer meberOperationHelperContainer = classDelegateInfo.MeberOperationHelperContainer;
     if (!(classDelegateInfo.MeberOperationHelperContainer.GetModelType() == type))
     {
         classDelegateInfo.MeberOperationHelperContainer = type.GetMeberOperationHelperContainer(true);
     }
     foreach (KeyValuePair<string, MeberOperationHelper> pair in classDelegateInfo.MeberOperationHelperContainer.GetDict())
     {
         if (!pair.Value.GetDbColumnAttribute().IgnoreLoad)
         {
             if (pair.Value.GetDbColumnAttribute().HasPrefix)
             {
                 object obj2 = Activator.CreateInstance(pair.Value.GetPropertyType());
                 pair.Value.SetPropertyValue(obj, obj2);
                 string str = null;
                 if (string.IsNullOrEmpty(pair.Value.GetDbColumnAttribute().SubItemPrefix))
                 {
                     str = subItemPrefix;
                 }
                 else if (pair.Value.GetDbColumnAttribute().SubItemPrefix == "*")
                 {
                     str = subItemPrefix + (pair.Key + ".");
                 }
                 else
                 {
                     str = subItemPrefix + pair.Value.GetDbColumnAttribute().SubItemPrefix;
                 }
                 SetPropertyValueFromReader(dataReaderAdapeter, obj2, str);
                 classDelegateInfo.MeberOperationHelperContainer = meberOperationHelperContainer;
             }
             else
             {
                 InnerSetPropertyValueFromReader(dataReaderAdapeter, obj, pair.Value, subItemPrefix);
             }
         }
     }
 }
 private static bool InnerSetPropertyValueFromReader(DataReaderAdapeter dataReaderAdapeter, object obj, MeberOperationHelper meberOperationHelper, string string_0)
 {
     string[] array = ((ClassDelegateInfo) dataReaderAdapeter.obj).ColumnNames;
     string str = string_0 + meberOperationHelper.GetDbColumnAttribute().Alias;
     int num = array.FindIndex(str);
     if (num < 0)
     {
         return false;
     }
     object dbValue = dataReaderAdapeter.GetValue(num);
     return (DBNull.Value.Equals(dbValue) || meberOperationHelper.SetPropertyValue(obj, dbValue));
 }