2017-01-29 3 views
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} 

私はスキーマラインを見ていないと予想していると思います。私はスキーマ定義を疑っています

+2

1)あなたは、テスト( 'PowerShellの-noprofile')のためのクリーンPowerShellセッションを使用していることを確認してください。 2) '$ group.PSTypeNames'を表示します。 3)[mcve](あなたのコードは私のためにうまく動作する)を構築します。 – PetSerAl

+0

あなたはそうです。これは私がやろうとしていたことですが、これは動作していないPowerShellモジュールの一部でしたが、Schemasメンバーの行を削除した後でフォーマットファイルを保存できませんでした。ドー!私はそれを再訪してくれてありがとう。それに対して+1。 – serialhobbyist

答えて

0

が適切ではない、あなたはこのPS1XMLに確認することができます

<Configuration> 
    <ViewDefinitions> 
    <View> 
     <Name>Group</Name> 
     <ViewSelectedBy> 
     <TypeName>Group</TypeName> 
     </ViewSelectedBy> 
     <TableControl> 
     <TableHeaders> 
      <TableColumnHeader> 
      <Width>33</Width> 
      </TableColumnHeader> 
      <TableColumnHeader> 
      <Width>12</Width> 
      <Alignment>Center</Alignment> 
      </TableColumnHeader>  
     </TableHeaders> 
     <TableRowEntries> 
      <TableRowEntry> 
      <TableColumnItems> 
       <TableColumnItem> 
       <PropertyName>displayname</PropertyName> 
       </TableColumnItem> 
       <TableColumnItem> 
       <PropertyName>id</PropertyName> 
       </TableColumnItem> 
      </TableColumnItems> 
      </TableRowEntry> 
     </TableRowEntries> 
     </TableControl> 
    </View> 
    </ViewDefinitions> 
</Configuration> 
関連する問題