Je suis en train de porter l'une de nos fonctions Azure node.js en C#, donc c'est un C# exécuté dans un conteneur .csx. Je cours dans l'émulateur Windows Function local et l'ai également essayé dans l'exécution de fonctions dans Azure, les deux montrent les mêmes erreurs de compilateur.Comment passer plusieurs paramètres en tant que tableau dans une fonction C# Azure?
J'ai vu multipleotherquestions demander quelque chose de similaire, mais il semble y avoir quelque chose de différent en cours d'exécution dans un fichier .csx ou l'exécution des fonctions comme aucune des réponses travail.
C'est la signature de la méthode que je vous appelle:
DocumentClient.ExecuteStoredProcedureAsync<TValue> Method (Uri, Object[])
C'est le code de travail de run.csx:
string param1 = "param1";
string param2 = "param2";
// object[] params = {"param1", "param2"};
var response = await client.ExecuteStoredProcedureAsync<object>(
sprocUri,
param1,
param2
);
Lorsque je tente d'ajouter les deux params dans un tableau et décommenter la ligne object[] params = {"param1", "param2"};
puis je reçois cette erreur du compilateur:
run.csx(72,14): error CS1001: Identifier expected
run.csx(72,14): error CS1003: Syntax error, ',' expected
run.csx(72,21): error CS1002: ; expected
run.csx(72,21): error CS1525: Invalid expression term '='
run.csx(72,23): error CS1525: Invalid expression term '{'
run.csx(72,23): error CS1002: ; expected
run.csx(72,32): error CS1002: ; expected
run.csx(72,32): error CS1513: } expected
run.csx(72,42): error CS1002: ; expected
Compilation failed.
(ligne 72 correspond à l'instruction d'affectation de tableau)
J'ai essayé toutes ces différentes façons de définir le tableau, mais je reçois des erreurs similaires pour chacun:
Object[] params = {"param1", "param2"};
object[] params = new[] {"param1", "param2"};
object[] params = new[] {param1, param2};
string[] params = {"param1", "param2"};
string[] params = new string[] {"param1", "param2"};
dynamic[] params = new[] {"param1", "param2"};
Y at-il quelque chose de différent sur les fonctions Azure où il a besoin un style différent de définition de tableau? Il n'y a rien mentionné à propos des tableaux dans le C# Developer Reference.
Merci, je l'ai changé args et cela fonctionne parfaitement maintenant. – Graham
Par curiosité, y a-t-il un secret à utiliser un ArrayList au lieu d'un tableau d'objets dans l'appel de la méthode? – Graham
@Graham non, ça devrait être pareil: 'var args = new ArrayList {param1, param2};' - tant que la méthode prend 'ArrayList' comme argument, bien sûr. En parlant de 'ArrayList', c'est une classe que vous ne voyez généralement pas après la première version de C# et/ou du code hérité. Il pourrait être plus idiomatique d'utiliser 'List