Как перебрать свойства экземпляра Powershell - PullRequest
2 голосов
/ 12 января 2020

Как я могу перебрать свойства текущего экземпляра из метода, определенного в том же экземпляре. Чтобы проиллюстрировать, что я имею в виду, посмотрите пример ниже.

Class Foo {

    [String] $Bar = "Cheese";
    [String] $Quux = "Cake";

    [Void] List (){

       ForEach($Prop in $This){
        Write-Host $This.Name
       }

    }

}

$Foo = [Foo]::New()
$Foo.List()

Это не работает должным образом, так как на консоль ничего не выводится. Я просто хотел бы понять, почему это не работает, и что мне нужно сделать, чтобы распечатать имя и значение Bar и Quux.

1 Ответ

2 голосов
/ 12 января 2020

Вы можете получить свойства $This и распечатать их, чтобы получить то, что вам нужно.

Class Foo {
     [String] $bar = "Cheese";
     [String] $Quux = "Cake";

    [Void] List() 
    {
        foreach($var in $This.PSObject.Properties) 
        {
            write-host $var.Name
        }
    }
}

$Foo = [Foo]::New()
$Foo.List()

Вывод

bar
Quux

PropertyInfo подробности можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...