Comment retourner un tableau JavaScript 'natif' à partir d'une méthode C #?
-
22-07-2019 - |
Question
J'essaie d'appeler une méthode C # à partir de JavaScript en utilisant ActiveXObject
:
var myobj = new ActiveXObject('myobject');
var arr = myobj.GetArray();
Finalement, arr
contiendra un objet SAFEARRAY
, mais pas le tableau JScript
. Est-il possible de retourner un objet JavaScript natif à partir d'une méthode C #?
La solution 2
J'ai trouvé la solution par moi-même, mais il n'y a pas de documentation pour cette partie.
La solution consiste à utiliser JScript.ArrayObject
de la manière suivante:
ArrayObject _lastField;
byte[] byteArray = new byte[]{2,1,2,3};
object[] array = new object[byteArray.Length];
byteArray.CopyTo(array, 0);
_lastField = Microsoft.JScript.GlobalObject.Array.ConstructArray(array);
Ensuite, vous pourrez utiliser le tableau _lastField
en JavaScript comme un tableau natif:
var myobj = new ActiveXObject('myobject');
var arr = myobj.LastField;
alert(arr[1]);
Autres conseils
Vous pouvez renvoyer une chaîne JSON , puis effectuer une analyse syntaxique dans un objet JavaScript. Un certain nombre de bibliothèques .NET sont disponibles pour sérialiser des objets .NET en JSON et vice-versa -
pour en nommer quelques-uns.
Cette question et réponse peuvent être de type utiliser pour vous
Vous pouvez renvoyer une chaîne jointe délimitée. en C # et peut se scinder en JavaScript
//C#
public string getArryString()
{
string[] arrstring = new string[]{"1","2","3"};
return string.Join(",", arrstring);
}
//Javascript
var arrstring = objActiveX.getArryString().split(',');
Via VBArray, cela peut fonctionner comme suit:
-
Renvoyez l'objet [] depuis C # (déclarez-le dans l'affichage).
-
Pour obtenir un tableau JS natif dans JScript, utilisez VBArray:
var jsArray = new VBArray(myobj.GetArray()).toArray(); for (i = 0; i < jsArray.length; i++) { // use jsArray[i] }
Informations générales:
-
JScript ne prend en charge que SafeArrays of Variants http: / /blogs.msdn.com/b/jaiprakash/archive/2007/01/09/jscript-supports-safearrays-of-variants-only.aspx
-
Guide complet de Eric pour la saisie de signatures de modèles d'objet scriptables http://blogs.msdn.com/b/ericlippert /archive/2004/07/14/183241.aspx