Я просто потренировался в написании проекта типа ORM на C #.
По сути, у меня есть такая структура классов:
IDBOperation
--- DBReadOperation
DBOperationPool
По сути, DBReadOperation отображает данные из указанной таблицы базы данных в класс в моем решении, например, PersonDetails.
Код для этого был взят из внешнего источника (не может вспомнить?) И в основном возвращает универсальную коллекцию (Collection).
Мой DBOperationPool должен иметь возможность принимать любое количество DBReadOperation и возвращать результаты для каждого из них. Логика для этого у меня внизу ... но не могу заставить код работать?
Класс отображения также построен на обобщениях .. так, как я могу создать экземпляр класса отображения, чтобы он был похож на ..
MappingClass<?> mappingInstance = new MappingClass<?>();
Collection<?> returnedCollection = mappingInstance.MapData(argument);
Как мне (используя обобщения, рефлексию или что-то еще) выяснить, что ставить, где знаки вопроса находятся выше? Это можно сделать? У меня был поиск вокруг, и, кажется, ничто не связано с этой проблемой ..
Очевидно, что простой маршрут - заставить пул включать в себя тип, к которому я хочу отобразить ... но суть пула в том, что я могу добавить к нему DBReadOperation, скажем, для PersonDetails, CompanyDetails и т. Д., И данные отображаются там, где они должны быть, и возвращают результаты правильно для каждого типа. С помощью этого маршрута я могу выбросить любое количество DBReadOperations в пул, если они имеют дело с определенным типом для каждого экземпляра DBOperationPool .. но это не то, что я хочу ..
Имеет ли это смысл?
С уважением,
Simon