Benutzer mit den meisten Antworten
Objekt an Funktion übergeben

Frage
-
Hallo zusammen,
ich wollte verschiedene Funktionen schreiben an die ich auch ein Objekt übergeben will.
Derzeit beschäftige ich mit mir der DotNet Zip Library (Ionic.Zip.dll).
Im Skript erstelle ich ein Objekt wie folgt:
[object]$ZipArchiv = New-Object Ionic.Zip.ZipFile($ZipName)Nun möchte ich dieses Objekt an eine Funktion als Parameter übergeben, aber das klappt nicht. Verwende ich ...GetType() sehe ich das ein ZipFile System.Object ist.
Geht das überhaupt und wenn ja, wie kann ich ein entsprechendes Objekt übergeben?
Viele Grüsse,
Daniel- Bearbeitet DniBo Samstag, 7. Dezember 2019 16:15
Antworten
-
Moin,
klar geht das. Die Funktion muss aber [object] oder [object[]] als Typ des Parameters dekalriert haben.
Und "das klappt nicht" ist keine Fehlerbeschreibung ;-) Poste mal den bisherigen Code (bitte als Code, 2. Button von rechts).
Evgenij Smirnov
- Als Antwort markiert DniBo Samstag, 7. Dezember 2019 17:36
Alle Antworten
-
Moin,
klar geht das. Die Funktion muss aber [object] oder [object[]] als Typ des Parameters dekalriert haben.
Und "das klappt nicht" ist keine Fehlerbeschreibung ;-) Poste mal den bisherigen Code (bitte als Code, 2. Button von rechts).
Evgenij Smirnov
- Als Antwort markiert DniBo Samstag, 7. Dezember 2019 17:36
-
Hallo Evgenij,
ich bin verwirrt...
Als Beispiel habe ich die Zeilen in eine neue PS1-Datei übernommen um zu testen und es dann hier zu posten, plötzlich geht es.
Bin irritiert...
Aber hier der Inhalt meines Versuches:
# Einbinden Ionic.Zip.dll [System.Reflection.Assembly]::LoadFrom("C:\Users\Public\DotNetZipDLL\Released\DotNetZipLib-Runtime-v1.9\DotNetZip-v1.9\Ionic.Zip.dll") # Zip File [string]$ZipFilePathName = 'Test.zip' # Weiter wenn Datei existiert und ein Zip-Archiv ist if ((Test-Path $ZipFilePathName) -and ([Ionic.Zip.ZIPFile]::IsZipFile($ZipFilePathName))) { Write-Host 'Datei ist vorhanden und ein Zip-Archiv' # Objekt für Zip-Archiv erstellen [object]$ZipFileObject = New-Object Ionic.Zip.ZipFile($ZipFilePathName) # Inhalt testweise abrufen #$ZipFileObject.EntryFileNames # Inhalt über Funktion Get-FilesInArchive -ZipFile $ZipFileObject } function Get-FilesInArchive { param ( [Parameter(Mandatory=$true, ParameterSetName='ArchiveFiles', HelpMessage='Abfrage Archiv-Inhalt', Position=1)] [object]$ZipFileInFunction ) # Inhalt abrufen $ZipFileInFunction.EntryFileNames }
Gruss,
Daniel