【发布时间】:2011-04-25 11:55:51
【问题描述】:
我一直在研究一些 PowerShell 函数来管理在我们创建的程序集中实现的对象。我一直在使用的类之一实现了 IEnumerable。不幸的是,这会导致 PowerShell 一有机会就展开对象。 (我无法改变该类实现 IEnumerable 的事实。)
我通过创建一个 PSObject 并将自定义对象的属性复制到 PSObject,然后返回它而不是自定义对象来解决此问题。但我真的更愿意返回我们的自定义对象。
有没有办法,大概是使用我的 types.ps1xml 文件,从 PowerShell 隐藏这个类的 GetEnumerator() 方法(或者告诉 PowerShell 永远不要展开它)。
【问题讨论】:
-
所以你有一个自定义的集合类,你不希望 powershell 把它当作一个集合?
-
是的,差不多就是这样。除了集合之外,该类还有其他东西。请不要让这演变成关于这个类是否应该是可枚举的(缺点)优点的讨论。
标签: powershell