O PowerShell informa o método ausente, quando existe um método

1

Recentemente, tive um problema com o PowerShell relatando que um método não existe em um objeto, enquanto Get-Member informa isso. Isso não acontece com todos os métodos, mas aconteceu em mais de uma instância.

Aqui está uma captura de tela de um exemplo no ISE.

    
por Iszi 06.01.2014 / 21:54

1 resposta

1

Sua variável $x contém uma matriz. Quando você canaliza um array para uma função, o pipeline não passa o array instance para a função; ele passa os elementos da matriz para o bloco process da função, um de cada vez.

Get-Member está realmente mostrando os membros da string 'c' - o último elemento da matriz - em vez dos membros da própria matriz. (Observe que a saída em sua captura de tela começa com TypeName: System.String .)

Se você quiser ver os membros para $x (a matriz), passe-a para Get-Member usando o parâmetro -InputObject , em vez de inseri-la.

$X='a','b','c'; gm -InputObject $x

Depois, você verá que seu $x é do tipo System.Object[] e não contém um método Remove . (Você não pode remover itens porque isso alteraria o tamanho da matriz e as matrizes no .NET são de tamanho fixo.)

    
por 03.05.2016 / 00:59