1

こんにちは、次のような階層オブジェクト構造があります

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

powershell で従業員オブジェクトを表示する formatedoutput.ps1xml ファイルを作成しました。

<?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>

PSで次のコマンドレットを使用してxmlファイルを登録しました

update-formatdata -prependpath c:\formatedoutput.ps1xml

表形式の出力が表示されており、従業員IDと名前が表示されていますが、部門名は表示されていません。

ネストされたオブジェクトにあるためだと思います

誰でも部門名を表示するのを手伝ってもらえますか

4

1 に答える 1

1

私は同様の問題に直面し、このブログに来ました。私の状況は、以下のような単純な変更によって解決されました。PropertyName タグの代わりに ScriptBlock を使用し、もちろん、デバッグ ウィンドウで値が null にならないようにします。

<TableColumnItem>
    <ScriptBlock>$_.Department.Name</ScriptBlock>
</TableColumnItem>
于 2013-03-21T14:07:15.200 に答える