C# 设置Powershell提供程序返回的对象的默认显示属性
我正在用C#构建一个Powershell提供程序。它为其子树中的项返回普通的旧C#对象 默认情况下,每个项目的所有属性都显示在垂直列表中,这很难看。因此,我需要指定显示属性,以允许对象在开箱即用的情况下正确格式化 根据文章和一篇文章,为了在执行C# 设置Powershell提供程序返回的对象的默认显示属性,c#,powershell,properties,C#,Powershell,Properties,我正在用C#构建一个Powershell提供程序。它为其子树中的项返回普通的旧C#对象 默认情况下,每个项目的所有属性都显示在垂直列表中,这很难看。因此,我需要指定显示属性,以允许对象在开箱即用的情况下正确格式化 根据文章和一篇文章,为了在执行“dir”时显示属性子集,需要在$pshome目录中创建一个“.format.ps1xml”文件。我已尝试完全按照建议执行此操作,输入如下示例: <Types> <Type> <Name>My.Namespa
“dir”
时显示属性子集,需要在$pshome
目录中创建一个“.format.ps1xml”文件。我已尝试完全按照建议执行此操作,输入如下示例:
<Types>
<Type>
<Name>My.Namespace.Provider.Account</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<PropertySet>
<Name>DefaultDisplayPropertySet</Name>
<ReferencedProperties>
<Name>Name</Name>
</ReferencedProperties>
</PropertySet>
</Members>
</MemberSet>
</Members>
</Type>
...
My.Namespace.Provider.Account
标准成员
DefaultDisplayPropertySet
名称
...
但是,这对输出没有任何影响。这可能是d'oh配置错误,所以这里是我想到的所有问题:
$pshome
目录中(在我的计算机上是C:\Windows\System32\WindowsPowerShell\v1.0
)?这个文件能在别处保存吗?当my.dll可以放在任何地方时,必须将其安装在WindowsPowerShell目录中似乎是错误的[CmdletProvider]
属性中指定的提供者名称。我尝试使用提供者名称后跟.format.ps1xml
,但正如前面提到的,它不起作用type
部分中提到的类型是我的提供者返回的命名空间限定类型。这是正确的吗