PowerShell C#扩展:如何在模块加载时设置DefaultDisplayProperty
在PowerShell模块加载时自动设置自定义类型默认显示属性
方法1:通过模块清单关联类型定义文件
模块加载时会自动处理.psd1清单中指定的类型数据文件,无需手动执行命令:
- 创建
Activity.Types.ps1xml文件,定义类型的默认显示属性:
<Types> <Type> <Name>activity</Name> <Members> <MemberSet> <Name>PSStandardMembers</Name> <Members> <PropertySet> <Name>DefaultDisplayPropertySet</Name> <ReferencedProperties> <Name>otherprop</Name> </ReferencedProperties> </PropertySet> </Members> </MemberSet> </Members> </Type> </Types>
- 修改模块的
.psd1文件,添加TypesToProcess字段指向该文件:
TypesToProcess = @('Activity.Types.ps1xml')
方法2:在模块脚本中直接执行Update-TypeData
在模块的主.psm1文件中加入以下代码,模块加载时会自动执行:
Update-TypeData -TypeName activity -DefaultDisplayProperty otherprop
方法3:通过C#模块初始化代码实现
在C#项目中添加模块初始化类,在模块加载时注册类型数据:
using System.Management.Automation; [ModuleInitializer] public static class ActivityModuleInitializer { public static void Initialize() { var typeData = new TypeData(typeof(activity)) { DefaultDisplayProperty = "otherprop" }; TypeTable.LoadTypeData(typeData); } }
三种方法都能实现模块加载时自动配置activity类型的默认显示属性,无需每次启动PowerShell会话手动执行命令。
内容的提问来源于stack exchange,提问作者William Holmes
相关产品推荐
相关产品推荐

