'L'expression d'argument n'est pas valide' lors de la création dynamique de types anonymes

expression-trees linq typebuilder

Question

Je crée un générateur d'arbre d'expression pour renvoyer des types anonymes personnalisés. J'ai d'abord essayé avec des types discrets et cela fonctionne bien, mais l'utilisation de TypeBuilder pour créer des types au moment de l'exécution et passer ce type à l'arbre d'expression échoue avec cette erreur

'Argument expression is not valid'

voici le code que j'utilise:

cette méthode que j'utilise pour créer le type anonyme

'Argument expression is not valid'

et voici comment je crée l'arbre d'expression

'Argument expression is not valid'

l'erreur est survenue pendant l'exécution de la méthode CreateQuery

Réponse acceptée

En effet , l' call des rendements dynamiquement créés ReturnType IdName donc l'exception. En outre, vous ne pouvez pas ReturnType des types dynamiques tels que ReturnType tant que paramètres de type générique, car le compilateur n'en sait rien, vous devez donc utiliser dynamic pour que le type soit résolu au moment de l'exécution:

var qResult = allCars.Provider.CreateQuery<dynamic>(call);



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi