Je dois appeler n'importe quelle méthode de n'importe quelle classe (dans le même assemblage) et passer les paramètres. Jusqu'ici tout va bien (je crois), mais Invoke me demande un tableau d'objets (que je peux obtenir) mais dans le même ordre que celui prédéfini dans la méthode.C# - Comment définir l'ordre correct des paramètres invoquant avec réflexion?
J'ai fait cette classe pour les paramètres:
public class Parametros {
public string type { get; set; }
public string name { get; set; }
public object value { get; set; }
}
et ma méthode pour « invoquer » est la suivante:
public static void Executar(string namespaceClass, string metodo,List<Parametros> parametros) {
Type type = Type.GetType(namespaceClass);
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod(metodo);
List<object> myParams = new List<object>();
foreach (Parametros myparam in parametros) {
//Get and order the params
myParams.Add(myparam.value);
}
methodInfo.Invoke(obj, myParams.ToArray());
}
Sans la solution de spécifier l'ordre dans ma classe Parametros
, il est un moyen d'accomplir cela, obtenir les noms des paramètres et l'envoyer à la méthode invoke?