Good Evening, Я тестирую классы Powershell в V5, и я не могу использовать отражение в классе Powershell. Возьмем следующий пример:Использование отражения в классе Powershell
class PSHello{
[void] Zip(){
Add-Type -Assembly "System.IO.Compression.FileSystem"
$includeBaseDirectory = $false
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory('C:\test', 'c:\test.zip',$compressionLevel ,$includeBaseDirectory)
}
}
$f = [PSHello]::new()
$f.Zip()
Как мы можем видеть, я загружая Ассамблею, а затем с помощью отражения Создать почтовый индекс каталога. Однако, когда это запустить я получаю ошибку
Unable to find type [System.IO.Compression.ZipFile].
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TypeNotFound
Теперь, если я запускаю то же самое содержание моего метода Zip вне класса он работает. Итак, почему нельзя отражать такое отражение внутри класса?
Могучих интересно, спасибо за ваш ответ и объяснение вопрос – jladd
Invoke-Expression может быть более простым решением ... – wOxxOm