public void TestInitialize() { dataFiller = new RandomDataFiller() { NumberOfBooks = 1000, NumberOfBookStates = 1000, NumberOfBookReaders = 1000, NumberOfEvents = 1000 }; context = new DataContext(); dataFiller.Fill(ref context); fileName = "ourSerializer_data.txt"; ourSerializer = new OurSerializer() { FileName = fileName }; }
protected object GetEntity(IDataReader reader, Type t) { object obj = Activator.CreateInstance(t); //object obj = new t(); StringDictionary columnsNames = new StringDictionary(); DataTable dt = reader.GetSchemaTable(); //--------------------------------- string columnname; for (int i = 0; i < reader.FieldCount; i++) { columnname = reader.GetName(i); if (!columnsNames.ContainsKey(columnname)) { columnsNames.Add(columnname, null); PropertyInfo myPropInfo; myPropInfo = t.GetProperty(columnname); if (reader[columnname] != DBNull.Value && myPropInfo != null) { //myPropInfo.SetValue(obj, Convert.ChangeType(reader[columnname], myPropInfo.PropertyType), null); if (myPropInfo.PropertyType.BaseType == typeof(System.Enum)) { //int intVal = Convert.ToInt32(attr.Value); myPropInfo.SetValue(obj, Enum.Parse(myPropInfo.PropertyType, reader[columnname].ToString()), null); //Enum.Parse(typeof(myPropInfo.), "FirstName"); } else if (columnname.ToLower() == "extradata") { string buf = (string)reader[columnname]; myPropInfo.SetValue(obj, Convert.ChangeType(OurSerializer.Deserialize(buf), myPropInfo.PropertyType), null); } else { myPropInfo.SetValue(obj, Convert.ChangeType(reader[columnname], myPropInfo.PropertyType), null); } } } } //--------------------------------- return(obj); }