Je ne fais que jouer avec l'écriture d'un projet de type ORM en C#.Invoquer une méthode générique qui renvoie une collection de génériques sans connaître le type? C#
Fondamentalement, j'ai une structure de classe comme ceci:
IDBOperation --- DBReadOperation
DBOperationPool
Fondamentalement, une donnée de cartes de DBReadOperation de la table de base de données spécifiée à une classe dans ma solution , disons par exemple PersonDetails.
Le code pour ce faire a été pris à partir d'une source externe (ne se souvient pas?), Et retourne fondamentalement une collection générique (Collection). Mon DBOperationPool doit être capable de prendre n'importe quel nombre de DBReadOperation et de renvoyer des résultats pour chacun d'entre eux.
La logique de ce que j'ai baissé .. mais n'arrive pas à faire fonctionner le code?
La classe de cartographie est également construit sur les génériques .. alors comment puis-je instancier la classe de cartographie pour être le long des lignes de ..
MappingClass<?> mappingInstance = new MappingClass<?>();
Collection<?> returnedCollection = mappingInstance.MapData(argument);
Comment puis-je (en utilisant des génériques, ou la réflexion, ou quoi que ce soit) comprendre ce qu'il faut mettre où les points d'interrogation sont dans le ci-dessus? Peut-il être fait? J'ai eu une recherche autour et rien ne semble être lié à ce problème exact ..
Évidemment, l'itinéraire facile fait de la piscine le type que je veux mapper vers .. mais le point entier de la piscine est que je peux y lancer DBReadOperation, par exemple, PersonDetails, CompanyDetails, etc, et que les données sont mappées là où elles doivent être et renvoyer les résultats correctement pour chaque type. Avec cette route, je peux lancer n'importe quel nombre de DBReadOperations dans un pool, tant qu'ils traitent un type spécifique pour chaque instance DBOperationPool .. mais ce n'est pas ce que je veux ..
Cela a-t-il du sens?
Cordialement,
Simon
en utilisant peut-être l'objet comme argument de type générique et puis en cascade à tout ce dont vous avez besoin? (Il tue un peu le concept de génériques, mais cela devrait fonctionner) – Machinarius