La fonction Invoke()
sur un objet MethodInfo
accepte les paramètres object[]
. Je veux être en mesure d'envoyer une chaîne codée JSON à la place. Est-ce qu'il y a un moyen de faire ça?C# MethodInfo Invoke() avec les arguments JSON
Le code que je me fonde le mien de Provient de this MSDN page
....
object wsvcClass = results.CompiledAssembly.CreateInstance(serviceName);
MethodInfo mi = wsvcClass.GetType().GetMethod(methodName);
//args in this case is an object[]. any way to pass a string?
return mi.Invoke(wsvcClass, args);
Je suis conscient que Newtonsoft fournit un moyen de cordes désérialiser mais peut-il le faire dans un object[]
? Ou est-ce qu'il y a un autre moyen de le faire?
Theres quelque chose au sujet 'new [] {...}' cela ne semble pas bien se passer. Même si les champs json correspondent directement aux noms des paramètres, ils donnent une erreur en disant "paramètres incompatibles" ou quelque chose comme ça. Heureusement, il existe un moyen de mapper ces noms de paramètres selon [ici] (https://stackoverflow.com/questions/13071805/dynamic-invoke-of-a-method-using-named-parameters) – Notaras
Ouais désolé, je le tapait en utilisant des tableaux implicitement typés. Si vous spécifiez un nouvel objet [], cela devrait faire l'affaire. Réponse mise à jour –