Die COM-Objekt-Methode scheint in Ihrem Fall ein Array mit einer unteren Grenze ungleich Null zurückzugeben. Sie können einen normalen Byte-Array erstellen und kopieren Sie dann die Daten aus dem ersten Array wie folgt:
var comArray = (Array)(object)comObject.CallToComObject();
byte[] data = new byte[comArray.Length];
Array.Copy(comArray, data, data.Length);
Ich bin nicht sicher, ob es eine Möglichkeit, das Kopieren zu vermeiden ist.
EDIT:
Aus einem Grund mir unbekannt, wenn die Nicht-Null untere Schranke Array in einer dynamischen Art und Weise zurückgeführt wird, dh die Unterschrift von CallToComObject
hat einen dynamic
Rückgabewert Typ, dann eine Ausnahme wird geworfen, wenn wir einfach versuchen, es als Array
zu werfen. Casting es zu einem object
zuerst scheint das Problem zu lösen. Ich weiß nicht warum.
, was passieren wird, wenn Sie ein Array mit einer Nicht-Null unterer Schranke erstellt haben. Was macht das COM-Objekt? –
Es wird ein Dokument von einem Speicheranbieter als Array byte [] abgerufen. Diese COM-Komponente ist eine Blackbox. Kein Zugriff auf die Quelle. Gibt es eine Möglichkeit, das zu beheben? – c0D3l0g1c