J'utilise l'extension d'interception Ninject pour implémenter SQLLogging. J'ai une variable appelée 'param' et c'est un type Anonymous tel qu'il est montré dans la fenêtre Watch (Voir l'image ci-dessous). Quand je fais param.ToString()
il est revenuListe d'itérations <int> dans un type anonyme
{Countries = {System.Collections.Generic.List<int>}
var param = invocation.Request.Arguments[0];
où invoation est de type Ninject.Extensions.Interception.IInvoation Interface.
Ce que je dois obtenir est un nom et ses articles. Donc, pour celui-ci je veux quelque chose comme "Pays = 36, 124, 826, 840".
Comment parcourir la liste pour atteindre cet objectif? Notez également que le nom Countries
dans ce cas n'est pas connu avant l'exécution. Il pourrait être quelque chose comme
{Ages = {System.Collections.Generic.List<int>}
ou
{Subjects={System.Collections.Generic.List<string>}
La propriété de type anonyme ne peut pas être déclarée à l'exécution, elle doit être une chose de compilation. Comment la variable 'params' est-elle définie? – MarcinJuraszek
Eh bien, faites-le savoir à la compilation. Les types anonymes sont conçus à 100% pour la compilation et les génériques, il est inutile de les utiliser comme "valeur de retour générique". Arrêtez d'utiliser des types anonymes. – Luaan
param est un élément de l'objet [] et j'ai hérité de cette base de code, donc je ne peux pas passer à un autre type. La fenêtre Regarder a répertorié tous les éléments dans VS. Comment faire quelque chose de similaire dans C#? –