2009-03-15 29 views

Trả lời

5

Tôi tìm thấy giải pháp của bản thân mình, nhưng không có tài liệu nào cho phần này. Các giải pháp là sử dụng JScript.ArrayObject theo cách sau:

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

Sau đó bạn sẽ có thể sử dụng các mảng _lastField trong JavaScript giống như một mảng có nguồn gốc:

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

Tôi sẽ rất cảnh giác với điều này. Nó khá có khả năng MS sẽ đưa cho bạn các vấn đề xbrowser cho "JScript" và ActiveX. Cách tiếp cận JSON sẽ trở nên linh hoạt và đáng tin cậy hơn. – annakata

8

Bạn có thể trả về một chuỗi JSON và sau đó phân tích cú pháp thành đối tượng JavaScript. Có một số thư viện .NET sẵn để serialize đối tượng .NET thành JSON và ngược versa-

đến tên một vài.

question and answer Điều này có thể được sử dụng để bạn

+0

Không, đây không phải là trường hợp. Tôi biết rằng tương tự có thể và thực sự đã được thực hiện bởi đồng nghiệp của tôi bằng cách sử dụng C + +, nhưng tôi không quen thuộc với điều đó, vì vậy tôi muốn biết làm thế nào tôi có thể làm điều đó bằng cách sử dụng C#. –

0

Via VBArray nó có thể làm việc như này:

  1. Trả về đối tượng [] từ C# (khai báo trong giao diện).

  2. Để có được một mảng JS mẹ đẻ trong JScript sử dụng VBArray: Thông tin

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

Bối cảnh:

0

Bạn có thể return delimited Joined String trong C# và có thể chia thành JavaScript

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

//Javascript 
var arrstring = objActiveX.getArryString().split(','); 
Các vấn đề liên quan