それぞれにulongメンバーが1つか2つあるC#クラスのセットがあります。Powershellは、これらをデフォルトで10ベースの数値として出力しますが、プレフィックスが0xの16進数として表示したいと思います。私は.ps1xmlファイルでこれを正しく行う方法を理解しようとしています。
私が最初に試したのは、置き換えたいものと同じ名前のスクリプトプロパティを追加するtypes.ps1xmlファイルを追加することでした。別の名前を付けると(つまり、新しいメンバーを追加すると)正常に機能しますが、次のように既存の名前と同じ名前を使用するとISEがクラッシュします。
<Members>
<ScriptProperty>
<Name>ForeignId</Name>
<GetScriptBlock>'0x{0:x16}' -f $this.ForeignId</GetScriptBlock>
</ScriptProperty>
</Members>
これは無限再帰の問題だと思います。
たぶん私が本当にやりたいのはフォーマットを変更することです!そこで、format.ps1xmlの作成と使用を検討し始めました<FormatString>
が、今ではフォーマットを完全に定義する必要があるようです。必要なすべてのメンバーを指定する必要があり、必要なすべてのビューに対して指定する必要があります。まあ、それは大変な作業です。
新しいメンバーを追加せずに、単一のメンバーのフォーマットを変更したいだけです。それは可能ですか?