Est-il possible de stocker des fonctions dans un dictionnaire?
J'ai un message venant dans mon application en C# qui est un objet sérialisé en JSON, quand je dé-sérialiser j'ai un "Nom" string
et une "Charge utile" string[]
, je veux être en mesure de prendre le "Nom" et le rechercher dans une fonction dictionnaire, à l'aide de la "Charge utile" tableau comme ses paramètres, puis prendre la sortie pour retourner au client d'envoyer le message, est-ce possible en C#?
J'ai trouvé un débordement de pile réponse ici où la deuxième partie semble plausible, mais je ne sais pas ce que je suis référencement avec State
Vous devez vous connecter pour publier un commentaire.
Il semble que vous probablement voulez quelque chose comme:
C'est en supposant que la fonction renvoie un
int
(vous n'avez pas spécifié). Donc, si vous voulez appeler ça comme ça:Ou pour valider le nom:
Il n'est pas clair où vous êtes en essayant de remplir
functions
, mais si c'est des méthodes de la même classe, vous pourriez avoir quelque chose comme:Vous pouvez créer un dictionnaire de
string
comme une clé et uneAction<string[]>
comme une valeur et utiliser, par exemple:Vous pouvez l'utiliser après vous désérialisez votre paramètre de message, vous pouvez utiliser le
functions
dictionnaire:Oui.
Quelque chose de similaire à ceci:
Noter que vous pourriez faire tout cela
static
, si les méthodes n'ont pas besoin d'accéder aux données à partir de quelque part d'autre.Le type de retour j'ai choisi pour l'délégués est
object
. De cette façon, leExecute
méthode peut sérialiser Json librement.Ma solution avec des paramètres d'entrée, et un int en tant que Clé de l'Invoquer:
Et d'invoquer une méthode:
Execute Method2.
Espère que cela aide!