Powershell generic type .net
Zur Navigation springen
Zur Suche springen
Wenn man in Powershell eine .NET Methode mit generic type (oder generic method?) aufrufen möchte, gibt es bisher keinen direkten Weg dafür.
Es lässt sich aber mit .NET Befehlen eine fertige Methode erstellen:
Beispiel Methode: ParquetRowReader<TTuple> CreateRowReader<TTuple>(string path)
class myType
{
[System.Nullable[ParquetSharp.Int96]]$timestamp;
[String]$s1
[System.Nullable[System.Boolean]]$bool
[string[]]$s2
}
$method = [Namespace.Namespace.Class].GetMethod('CreateRowReader',[String]) ## wenn es mehrere Überladungen gibt, kann man die Parameter mit angeben
# $method = [Namespace.Namespace.Class].GetMethod('CreateRowReader') ## gibt es keine mehreren Überladungen, reicht einfach der Methodenname
$m = $method.MakeGenericMethod([myType]) ## Variable für den generic type übergeben. Hier im Beispiel für ein TTuple eine Class
$p = $m.Invoke($null,"Parameter für Methode") ## Methode mit Parameter aufrufen - $p enthält den Rückgabewert der Methode
$p.ReadRows(0) ## mit dem Rückgabe Objekt einfach weiterarbeiten