オブジェクトのView定義(1)
「get-process」のプロパティは8つしかない?
Monadを起動し
get-process
と入力すると以下のような結果が表示されます。
Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 274 16 14460 22196 153 6.27 2396 B2 128 4 2352 9456 34 0.34 636 BsCLiP 83 6 2080 2952 71 0.58 1508 clnch (中略)
各プロセス毎に8つのプロパティが表示されます。
では「get-process」のプロパティは7つしかない…ということでしょうか?
「get-process」で取得されるオブジェクトの型を調べる
MSH C:\> (get-process)[0].gettype().fullname System.Diagnostics.Process
「System.Diagnostics.Process」のプロパティを調べる
MSH C:\> get-process | get-member -membertype property TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- BasePriority Property System.Int32 BasePriority {get;} Container Property System.ComponentModel.IContainer Container {get;} EnableRaisingEvents Property System.Boolean EnableRaisingEvents {get;set;} ExitCode Property System.Int32 ExitCode {get;} ExitTime Property System.DateTime ExitTime {get;} Handle Property System.IntPtr Handle {get;} HandleCount Property System.Int32 HandleCount {get;} (中略)
「get-process」で取得される「System.Diagnostics.Process」オブジェクトは、
50個以上のプロパティを持っていることが分かりました。
では、
get-process
と入力した時に、なぜ8つしかプロパティが表示されないのでしょうか?
オブジェクトのView定義
Monadでは、標準出力にオブジェクトが渡された際のプロパティなど、Viewの情報は「Format.mshxml」に定義します。
「Format.mshxml」には、
- どのようなプロパティをどの順で表示するか
- 表示名称、表示幅、アライメント
などを定義することができます。
「System.Diagnostics.Process」のViewは、Monadインストールディレクトリの「DotNetTypes.Format.mshxml」に定義されています。
今回はここまでです。
次回は、「DotNetTypes.Format.mshxml」のView定義を見てみましょう。