كيفية إرجاع JavaScript 'الأصلية' مجموعة من C# الطريقة ؟
-
22-07-2019 - |
سؤال
أنا أحاول أن أتصل C# طريقة من جافا سكريبت باستخدام ActiveXObject
:
var myobj = new ActiveXObject('myobject');
var arr = myobj.GetArray();
في نهاية المطاف ، arr
سوف تحتوي على SAFEARRAY
كائن ، ولكن ليس JScript
الصفيف.هل هناك أي طريقة للعودة الأم كائن جافا سكريبت من C# الطريقة ؟
المحلول 2
ولقد وجدت الحل بنفسي، ولكن عدم وجود وثائق لهذا الجزء.
الحل هو استخدام JScript.ArrayObject
على النحو التالي:
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);
وبعد ذلك سوف تكون قادرة على استخدام مجموعة _lastField
في جافا سكريبت مثل مجموعة الأم:
var myobj = new ActiveXObject('myobject');
var arr = myobj.LastField;
alert(arr[1]);
نصائح أخرى
يمكنك العودة سلمان سلسلة ثم تحليل إلى كائن جافا سكريبت.هناك عدد من .صافي المكتبات المتاحة على تسلسل .صافي الكائنات إلى سلمان والعكس بالعكس-
إلى اسم قليلة.
هذا سؤال وجواب قد تكون ذات فائدة لك
عودة فواصل اشترك في سلسلة في C #، ويمكن تقسيمها إلى تفعيل جافا
//C#
public string getArryString()
{
string[] arrstring = new string[]{"1","2","3"};
return string.Join(",", arrstring);
}
//Javascript
var arrstring = objActiveX.getArryString().split(',');
Via لذلك ، لن تتم مناقشة أنها يمكن أن تعمل مثل هذا:
عودة وجوه[] من C# (تعلن حتى في dispinterface).
للحصول على مواليد شبيبة مجموعة في JScript استخدام لذلك ، لن تتم مناقشة:
var jsArray = new VBArray(myobj.GetArray()).toArray(); for (i = 0; i < jsArray.length; i++) { // use jsArray[i] }
معلومات أساسية:
JScript يدعم SafeArrays من المتغيرات فقط http://blogs.msdn.com/b/jaiprakash/archive/2007/01/09/jscript-supports-safearrays-of-variants-only.aspx
اريك دليل كامل نوع التواقيع النصية طرازات كائن http://blogs.msdn.com/b/ericlippert/archive/2004/07/14/183241.aspx