2017-01-29 6 views
0

Я создал класс:Могу ли я использовать файл format.ps1xml для форматирования класса, созданного в PowerShell, и если да, то каким образом?

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" 

Но , когда я создаю экземпляр группы, формат не применяется, и я вижу всех членов класса.

E.g.

$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} 

Я бы ожидать, чтобы не видеть линию Schemas.

+2

1) Убедитесь, что вы используете чистый сеанс PowerShell для тестирования ('PowerShell -noprofile'). 2) Показать '$ group.PSTypeNames'. 3) Построить [mcve] (ваш код отлично работает для меня). – PetSerAl

+0

Вы правы. Это то, что я пытался сделать, потому что это было частью модуля PowerShell, который не вел себя, но я не смог сохранить файл формата после удаления строки для члена Schemas. Doh! Спасибо, что заставил меня вернуться к нему. +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> 

 Смежные вопросы

  • Нет связанных вопросов^_^