0
私はクラスを作成しました:PowerShellで作成したクラスをformat.ps1xmlファイルでフォーマットすることはできますか?
Class Group {
[Guid]$Id
[String]$DisplayName
[String[]]$Schemas
}
とTest.format.ps1xmlファイル:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<SelectionSets>
</SelectionSets>
<Controls>
</Controls>
<ViewDefinitions>
<View>
<Name>Group</Name>
<ViewSelectedBy>
<TypeName>Group</TypeName>
</ViewSelectedBy>
<ListControl>
<ListEntries>
<ListEntry>
<ListItems>
<ListItem>
<PropertyName>Id</PropertyName>
</ListItem>
<ListItem>
<PropertyName>DisplayName</PropertyName>
</ListItem>
</ListItems>
</ListEntry>
</ListEntries>
</ListControl>
</View>
</ViewDefinitions>
</Configuration>
私は現在のPowerShellのインスタンスにフォーマットを追加します。
Update-formatdata –prependpath "C:\Work\Test.format.ps1xml"
しかし、私がGroupのインスタンスを作成するとき、フォーマットは適用されず、クラスのすべてのメンバーが表示されます。
など。
$group = New-Object Group
$group.Id = [Guid]::NewGuid()
$group.DisplayName = 'Name'
$group.Schemas = @('schema1', 'schema2')
$group
生成:
PS C:\Work> $group
Id : e2b6ccff-e72d-4494-8242-975618889c9c
DisplayName : Name
Schemas : {schema1, schema2}
私はスキーマラインを見ていないと予想していると思います。私はスキーマ定義を疑っています
1)あなたは、テスト( 'PowerShellの-noprofile')のためのクリーンPowerShellセッションを使用していることを確認してください。 2) '$ group.PSTypeNames'を表示します。 3)[mcve](あなたのコードは私のためにうまく動作する)を構築します。 – PetSerAl
あなたはそうです。これは私がやろうとしていたことですが、これは動作していないPowerShellモジュールの一部でしたが、Schemasメンバーの行を削除した後でフォーマットファイルを保存できませんでした。ドー!私はそれを再訪してくれてありがとう。それに対して+1。 – serialhobbyist