2010-01-18 6 views
2

J'utilise linq. Toutes mes requêtes ressemble à var query = dc.GetTable<myType>().C# Génériques et Réflexion

Je voudrais pouvoir choisir "myType" en utilisant un paramètre de chaîne. J'ai essayé de créer un objet Type en utilisant la réflexion, mais le compilateur ne reconnaît pas les objets Type en tant que définitions de classe.

Des suggestions? Merci

Répondre

1

Pourquoi voulez-vous cela? En utilisant la méthode générique comme vous le faites maintenant, vous donne le temps de compiler le support de la vérification, alors qu'un paramètre de chaîne pas.

5

Il y a une méthode d'extension GetTable(Type) qui fait exactement ce que vous recherchez:

var query = dc.GetTable(Type.GetType("namespace.type, assembly")); 
+0

C'est une bonne approche, mais je suis en train de concevoir une application en trois couches. Tous utilisent une logique générique. Je voudrais personnaliser la classe de travail en utilisant des chaînes de texte dans la couche de présentation, et cette information s'étend à la couche de persistance. Merci – user253501

+0

@dalbornoz - Votre couche de persistance a besoin de savoir de quelle table charger les données. Vous ne pouvez pas éviter cela. –

Questions connexes