Type.InvokeMember mit ArrayRückgabe

10/11/2009 - 01:06 von Gerrit Kuhlendahl | Report spam
Moinsen!

Ich steh grad mal wieder in der Gegend rum und somit
natürlich wieder mal auf dem Schlauch:

Ich hab folgende Funktion:

Public Function GetData() as Byte()
[Werbemode]
Viele viele bunte Smarties - àh Anweisungen
[/Werbemode]
End Function

Nun möchte/will/soll/muß ich die Funktion über
InvokeMember aufrufen. Soweit alles schön und gut,
nur mit dem Rückgabe-Wert haperts. Ich kriegs nicht
gebacken, daß ein Aufruf làuft, da InvokeMember ja
nur ein Object zurückliefert und kein Array. Hat da
grad mal einer eine zündende Idee?

Viele Grüße

Gerrit



KUH-SOFT - Die Software von glücklichen Programmierern
 

Lesen sie die antworten

#1 Armin Zingler
10/11/2009 - 01:29 | Warnen spam
Gerrit Kuhlendahl schrieb:
Moinsen!

Ich steh grad mal wieder in der Gegend rum und somit
natürlich wieder mal auf dem Schlauch:

Ich hab folgende Funktion:

Public Function GetData() as Byte()
[Werbemode]
Viele viele bunte Smarties - àh Anweisungen
[/Werbemode]
End Function

Nun möchte/will/soll/muß ich die Funktion über
InvokeMember aufrufen. Soweit alles schön und gut,
nur mit dem Rückgabe-Wert haperts. Ich kriegs nicht
gebacken, daß ein Aufruf làuft, da InvokeMember ja
nur ein Object zurückliefert und kein Array. Hat da
grad mal einer eine zündende Idee?



Ist ein Array kein Object? ;)


Public Class Main

Shared Sub Main()
Dim t = GetType(Main)
Dim wert As Byte()

wert = DirectCast( _
t.InvokeMember( _
"GetData", _
Reflection.BindingFlags.Static Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.InvokeMethod, _
Nothing, Nothing, Nothing _
), Byte() _
)

MsgBox(wert(0))

End Sub

Public Shared Function GetData() As Byte()
Return New Byte() {17}
End Function
End Class




Armin

Ähnliche fragen