2012-04-11 2 views
1

привет у меня есть heirarchial структура объекта какКак отобразить вложенные объекты с .ps1xml файлом через C# командлет в PowerShell

public class Department 
    { 
     public Guid ID {get; set;} 
     public string Name{get; set;} 
    } 

    public class Employee 
    { 
     public Guid ID {get; set;} 
     public string Name{get; set;} 
     public Department Department {get;set;} 
    } 

я создал файл formatedoutput.ps1xml показать объект работника в PowerShell

<?xml version="1.0" encoding="utf-8" ?> 
<Configuration> 
<ViewDefinitions> 
    <View> 
     <Name>EmpView</Name> 
    <ViewSelectedBy> 
     <TypeName>Employee</TypeName> 
    </ViewSelectedBy> 

    <TableControl> 
    <TableHeaders> 
     <TableColumnHeader> 
     <Width>16</Width> 
     </TableColumnHeader> 
     <TableColumnHeader> 
     <Width>16</Width> 
     </TableColumnHeader> 
     <TableColumnHeader/> 
    </TableHeaders> 
    <TableRowEntries> 
     <TableRowEntry> 
     <TableColumnItems> 
      <TableColumnItem> 
      <PropertyName>ID</PropertyName> 
      </TableColumnItem> 
      <TableColumnItem> 
      <PropertyName>Name</PropertyName> 
      </TableColumnItem> 
      <TableColumnItem> 
      <PropertyName>Department.Name</PropertyName> 
      </TableColumnItem> 
     </TableColumnItems> 
     </TableRowEntry> 
    </TableRowEntries> 
    </TableControl> 
</View> 
</ViewDefinitions> 
</Configuration> 

я зарегистрировал свой файл XML, используя следующую команду в PS

update-formatdata -prependpath c:\formatedoutput.ps1xml 

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

я думаю, что его, потому что он находится в вложенном объекте

может кто-нибудь, пожалуйста, помогите мне в отображении имени отдела

ответ

1

я столкнулся с подобной проблемой и пришел к этому блогу. Для меня ситуация была решена простым изменением, как показано ниже: для использования ScriptBlock вместо тега PropertyName и, конечно, обеспечения того, что значение не является нулевым в окне отладки:

<TableColumnItem> 
    <ScriptBlock>$_.Department.Name</ScriptBlock> 
</TableColumnItem> 

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

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