private object CreateDictionaryObject(IDataReaderAdapter dataReaderAdapter) { var result = new Dictionary <string, object>(); for (var i = 0; i < dataReaderAdapter.FieldCount; i++) { var value = dataReaderAdapter[i]; if (value == DBNull.Value) { value = null; } result[dataReaderAdapter.GetName(i)] = value; } return(result); }
private object CreateDynamicObject(IDataReaderAdapter dataReaderAdapter) { var result = new ExpandoObject(); var dictionaryResult = (IDictionary <string, object>)result; for (var i = 0; i < dataReaderAdapter.FieldCount; i++) { var value = dataReaderAdapter[i]; if (value == DBNull.Value) { value = null; } dictionaryResult[dataReaderAdapter.GetName(i)] = value; } return(result); }
private object CreateSingleInstance(IDataReaderAdapter dataReaderAdapter, Type instanceType) { var instance = Activator.CreateInstance(instanceType); var typeProperties = instanceType.GetProperties(BindingFlags.Public | BindingFlags.Instance); for (var i = 0; i < dataReaderAdapter.FieldCount; i++) { var columnName = dataReaderAdapter.GetName(i); var property = GetPropertyInfo(typeProperties, columnName); if (property != null) { var value = dataReaderAdapter.GetValue(i); var convertedValue = _objectConverter.ChangeType(property.PropertyType, value); property.SetValue(instance, convertedValue, null); } } return(instance); }