0

我正在 powershell 2.0 中编写我的第一个自定义 CMDLet。我遇到了一个问题,即我的 cmdlet 中没有使用自定义格式模板 xml。这是我的格式化文件:

<Configuration>
<ViewDefinitions>
  <View>
    <Name>abc</Name>
    <ViewSelectedBy>
      <TypeName>ExtractServicesCmd.ServiceInfo</TypeName>
    </ViewSelectedBy> 
    <TableControl>
      <TableHeaders>
        <TableColumnHeader>
          <Label>ServiceName</Label>
          <Width>12</Width>
          <Alignment>right</Alignment>
        </TableColumnHeader>      
      </TableHeaders>
      <TableRowEntries>
        <TableRowEntry>
          <TableColumnItems>
            <TableColumnItem>
              <PropertyName>ServiceName</PropertyName>
            </TableColumnItem>           
          </TableColumnItems>
        </TableRowEntry>
      </TableRowEntries>
    </TableControl>
  </View>  
  </ViewDefinitions>
</Configuration>

一切正常,格式已成功注册(我使用Get-FormatData命令检查过),类型正确。但是在执行我的命令行开关时,它仍然使用默认格式。我什至试图通过管道“| Format-Table -View abc”来强制使用我的格式化程序,但它说 - 找不到名为 abc 的视图!到底是怎么回事?我尝试了 Get-FormatData并分析了条目 - 我的 ViewDefinition 以正确的视图名称出现在那里!

谢谢阅读。

4

1 回答 1

0

$x.GetType().FullName 其中 $x 是您键入的实例返回什么?(即,这听起来像 PSH 无法匹配类型名称。)

请注意,类型名称将与正在格式化的对象的确切类型对象的基本类型相匹配。

于 2011-09-30T07:00:34.827 回答