我正在开发一个使用 PowerShell SDK 执行脚本的 .NET/C# 2.0 应用程序。我没有使用管理单元。我通过 PS 的RunspaceConfiguration直接设置所有内容。
所以我的问题是我无法为应用程序中实现的类型Plux.ExtensionTypeInfo添加自定义格式。
(Plux.ExtensionTypeInfo有一个名为 Name 的属性)
这就是我尝试的:
...
RunspaceConfiguration config = RunspaceConfiguration.Create();
config.Formats.Prepend(
new FormatConfigurationEntry("plux.format.ps1xml")
);
config.Formats.Update();
...
plux.format.ps1xml:
<Configuration>
<ViewDefinitions>
<View>
<Name>Plux.ExtensionTypeInfo</Name>
<ViewSelectedBy>
<TypeName>Plux.ExtensionTypeInfo</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>30</Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
执行返回几个 ExtensionTypeInfo 对象的 Cmdlet 后,输出将永远不会被格式化。
借助内置的 Cmdlet 和类型,格式可以在我的 PS Host 应用程序中完美运行。Cmdlet 注册也可以通过配置对象正常工作。使用 powershell.exe 或我的托管应用程序在plux.format.ps1xml上启动update-formatdata时,不会引发任何错误。
尽管如此,上面的代码对格式化没有影响。