2009-03-15 20 views

Respuesta

5

he encontrado la solución por mí mismo, pero no existe documentación para esta parte. La solución es utilizar JScript.ArrayObject de la siguiente manera:

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); 

Después de que usted será capaz de utilizar la matriz _lastField en JavaScript como una matriz nativa:

var myobj = new ActiveXObject('myobject'); 
var arr = myobj.LastField; 
alert(arr[1]); 
+2

Sería extremadamente cauteloso de esto. Es muy probable que MS le entregue problemas de xbrowser dado el "JScript" y el ActiveX. El enfoque JSON va a ser más flexible y confiable. – annakata

8

Puede devolver una cadena JSON y luego analizar en un objeto JavaScript. Hay una serie de bibliotecas .NET disponible para serializar objetos .NET en JSON y viceversa-

para nombrar unos pocos.

Este question and answer pueden ser de utilidad para usted

+0

No, esto no es el caso. Sé que mi colega hizo algo similar y, de hecho, lo hizo usando C++, pero no estoy familiarizado con eso, así que deseo saber cómo puedo hacerlo usando C#. –

0

Via VBArray que puede funcionar como esto:

  1. Devuelve el objeto [] desde C# (declararlo en la dispinterface).

  2. Para obtener una gama JS nativa en JScript utilizar VBArray: información

    var jsArray = new VBArray(myobj.GetArray()).toArray(); 
    for (i = 0; i < jsArray.length; i++) 
    { 
        // use jsArray[i] 
    } 
    

Antecedentes:

0

Usted puede return delimited Joined String en C# y puede dividirse en JavaScript

//C# 
public string getArryString() 
{ 
string[] arrstring = new string[]{"1","2","3"}; 
return string.Join(",", arrstring); 
} 

//Javascript 
var arrstring = objActiveX.getArryString().split(','); 
Cuestiones relacionadas