.NET Namespace / 型 調査コマンドまとめ(PowerShell 5.1)


① 名前空間の中身を一覧表示(確実に動く)

[AppDomain]::CurrentDomain.GetAssemblies() |
    ForEach-Object { $_.GetTypes() } |
    Where-Object { $_.Namespace -eq "System.IO" } |
    Select-Object Name, Namespace, BaseType

② 型のメンバー(メソッド・プロパティ)を調べる

[System.IO.File] | Get-Member

③ 型が属するアセンブリを調べる

[System.IO.File].Assembly

④ 名前空間の中の「列挙型(Enum)だけ」を抽出

[AppDomain]::CurrentDomain.GetAssemblies() |
    ForEach-Object { $_.GetTypes() } |
    Where-Object { $_.Namespace -eq "System.IO" -and $_.IsEnum } |
    Select-Object Name, Namespace

⑤ 名前空間の中の「クラスだけ」を抽出

[AppDomain]::CurrentDomain.GetAssemblies() |
    ForEach-Object { $_.GetTypes() } |
    Where-Object { $_.Namespace -eq "System.IO" -and $_.IsClass } |
    Select-Object Name, BaseType

⑥ 名前空間一覧を全部出す(重複除去)

[AppDomain]::CurrentDomain.GetAssemblies() |
    ForEach-Object { $_.GetTypes() } |
    Where-Object { $_.Namespace } |
    Select-Object Namespace -Unique |
    Sort-Object Namespace