In Excel è possibile restituire un array dinamico System.Object[*]
da un oggetto serie utilizzando XValues
. In .NET 3.5 è possibile accedere agli elementi in questo oggetto, gettandola da e array, vale a dire:Problemi di interoperabilità .NET 4.0 Excel con raccolte dinamiche
var values = (Array)series.XValues;
In .NET 4.0, questo non funziona più, e il messaggio
"Impossibile cast oggetto di tipo 'System.Object [*]' per digitare 'System.Object []' "
dato.
Qualche idea? Quanto segue non funziona:
- Lanciato come dinamico.
- Trasmettendolo a
System.Object[*]
. - Basta posizionare l'oggetto in a per ogni ciclo.
- Cercando di accedere direttamente al valore utilizzando
values[1]
, né quando lanciato come dinamico.
I valori all'interno dell'array appaiono tuttavia nel debugger.
Il problema che ho non è sempre il valore al di fuori di un oggetto Array la cui bassa-bound isnt 0, il problema sto avendo non riesco a convertire la raccolta di oggetti COM in qualcosa utilizzabile da .NET. Il codice di esempio che hai fornito implica l'utilizzo di un oggetto di tipo Array, ma non riesco a trasmettere la raccolta che mi è stata assegnata ad una matrice. Grazie per il tuo tempo tuttavia. –
'Impossibile eseguire il cast dell'oggetto di tipo 'System.Object [*]'. Questa è una matrice. –
@HansPassant la difficoltà è nel casting, vedere il collegamento nella mia risposta per i dettagli. – GreyCloud