Possible en double:
Is it possible to declare an anonymous type in C# with a variable/dynamic set of fields?Comment ajouter dynamiquement des propriétés à un objet anonyme?
J'ai construit un générateur de requêtes qui construit une requête en examinant certaines valeurs GET que l'utilisateur a défini dans mon application ASP.NET MVC3. Ce générateur de requête peut ajouter un tri, une limitation et un filtrage (la clause WHERE), puis renvoie la requête construite.
Cette requête va alors à mon dépôt Dapper qui tente d'exécuter la requête avec:
using (IDbConnection connection = new MySqlConnection(ConnectionStringFactory.GetConnectionString(Database.Push)))
{
connection.Open();
return connection.Query<Notification>(query.QueryString,
new
{
someAnonymousStuffHere = SomeValue
});
}
Cependant, les paramètres de la requête (c'est une déclaration préparée) doivent être mis dans un type anonyme. Le problème est: je ne sais pas comment construire dynamiquement ce type anonyme. Ce que je fais maintenant est de pousser tous les paramètres dans un dictionnaire dans le générateur de requête, où la clé est le nom de la propriété et la valeur est, bien, la valeur.
Je ne peux pas simplement définir un type anonyme dans mon générateur de requête, car le générateur se compose de plusieurs étapes, dont certaines ne sont pas exécutées. Donc parfois nous avons 5 paramètres, parfois nous avons 3 paramètres, etc.
J'espère avoir expliqué mon problème assez clairement. N'hésitez pas à demander plus d'informations :) Merci d'avance!
Que comptez-vous faire avec ce type anonyme dont vous ne connaissez pas les membres au moment de la compilation? – Gabe
Le type anonyme va dans la méthode Query, qui mappera probablement les paramètres à l'espace réservé correct dans la requête. –
http://stackoverflow.com/questions/7437043/is-it-possible-to-declare-an-anonymous-type-in-c-with-a-variable-dynamic-set-of devrait avoir votre réponse –