2
wwwroot> $nsmgr.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    XmlNamespaceManager                      System.Object

wwwroot> Get-Member -InputObject $nsmgr

   TypeName: System.Xml.XmlNamespaceManager

wwwroot> $nsmgr | Get-Member

   TypeName: System.String

Get-Member は最初の呼び出しで String に型変換しているGet-Memberように見えますが、これは のようなコマンドレットでは非常に奇妙な動作のようGet-Memberです。

How to use PowerShell Get-Member cmdlet を読みましたが、それが同じ問題だとは思いません。

4

1 に答える 1

5

XmlNamespaceManager が実装されIEnumerableているため、PowerShell は XmlNamespaceManager に含まれる項目をパイプラインに出力します。コンマ演算子を使用できないようにするには、次のようにします。

,$nsmgr | Get-Member

これにより、XmlNamespaceManager の周りに単純な配列ラッパーが作成され、その内容ではなくパイプに伝達されます。

于 2012-12-10T20:42:29.833 に答える