C # - IDataReader do mapowania obiektów przy użyciu generycznych

W jaki sposób mogę zmapować obiekt DataReader do obiektu klasy za pomocą generycznych?

Na przykład muszę wykonać następujące czynności:

public class Mapper<T>
    {
        public static List<T> MapObject(IDataReader dr)
        {
            List<T> objects = new List<T>();

            while (dr.Read())
            {
                //Mapping goes here...
            }

            return objects;
        }
    }

A później muszę nazwać tę metodę klasową następująco:

IDataReder dataReader = DBUtil.Fetchdata("SELECT * FROM Book");

List<Book> bookList = Mapper<Book>.MapObject(dataReder);

foreach (Book b in bookList)
{
     Console.WriteLine(b.ID + ", " + b.BookName);
}

Zauważ, że klasa Mapper powinna być w stanie odwzorować obiekt dowolnego typu reprezentowanego przez T.

questionAnswers(10)

yourAnswerToTheQuestion