Laden und Übergeben von JScript-Arrays von / an C # (nicht C) COM-Komponente

Ich habe mir Tutorials zu jscript-Arrays angesehen, sie aber noch nicht gesehen. Ich sah etwas Ähnliches gefragt, aber mit Win32-Code, nicht .NET.

Wie übergebe ich Arrays zwischen JScript und einer C # COM-Komponente?

In meiner C # -COM sind beispielsweise zwei Eigenschaften definiert, die Zeichenfolgen- und Ganzzahl-Arrays wie folgt zurückgeben:

string[] HeaderLines { get; set; }
int[] ImagePixels { get; set; }

In meiner test.js Datei:

...

var T = new ActiveXObject("Imager.Reader"); 
...    
var headerLines = T.HeaderLines;
WScript.StdOut.WriteLine("First HeaderLine:" + headerLines[0]);
var pixels = T.ImagePixels;
WScript.StdOut.WriteLine("First Pixel: " + pixels[0]);

In diesem Fehler wird headerLines [0] ausgegeben: C: \ temp \ test.js (12, 1) Microsoft JScript-Laufzeitfehler: 'headerLines.0' ist null oder kein Objekt

Wenn ich die headerLines in test.js entferne, erhalte ich diesen Fehler (im Wesentlichen derselbe, aber für das Integer-Array): C: \ temp \ test.js (12, 1) Microsoft JScript-Laufzeitfehler: 'pixels.0' ist null oder kein Objekt

Ich kann Ergebnisse von Nicht-Array-Eigenschaften erhalten sowie Werte an andere Methoden übergeben, aber nicht mit Arrays. Ich muss auch Zeichenfolgen- und Ganzzahl-Arrays an eine Methode übergeben, die in meiner C # COM-Komponente definiert ist als:

bool Write(string filename, string[] headerLines, int[] pix, int width, int height);

Ich verwende Visual Studio Express 2012 für Desktop zum Erstellen des COM-Elements in C #. Wenn weitere Informationen benötigt werden, lassen Sie es mich einfach wissen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage