有没有更简单的方法在Powershell v2中使用扩展方法

时间:2009-01-10 20:49:08

标签: powershell extension-methods

背景

这篇文章解释了如何在Powershell中使用扩展方法

http://community.bartdesmet.net/blogs/bart/archive/2007/09/06/extension-methods-in-windows-powershell.aspx

将此与C#中的某人进行比较 - 他们添加了“使用SomeAssembly”并加载了所有扩展方法。

我的问题

这是否变得更简单Powershell 2.0。如果是这样,人们如何在Powershell 2.0中使用扩展方法?我检查了公开可用的文档并安装了CTP,但没有看到任何有用的文件。

1 个答案:

答案 0 :(得分:3)

在V2中它并不容易,但是有一种你可能不知道的扩展机制。

我认为部分问题出在PowerShell处理(或缺乏)泛型的问题上。

此外,对于要应用的扩展方法,必须强制执行类型化集合,这在PowerShell中很难实现。 PowerShell作为一种动态语言,支持构建各种类型的集合,大多数集合都表示为Object数组。扩展方法要求从集合类型推断出参数,然后检查谓词的类型是否正确。

如果您关注某些类似LINQ的函数,则有许多cmdlet在处理对象集合时提供相同的功能。

PowerShell的扩展类型系统允许您通过添加xml文件或修改现有文件来添加各种类型的方法(建议使用新方法)。 Jeffrey Snover通过向this blog post中的Object类添加ScriptProperty来演示这一点。

它并不完全相同,但它可以完成工作。