背景
这篇文章解释了如何在 Powershell 中使用扩展方法
将此与某人在 C# 中所做的比较 - 他们添加了“使用 SomeAssembly”并加载了所有扩展方法。
我的问题
这是否变得更简单 Powershell 2.0. 如果是这样,如何在 Powershell 2.0 中使用扩展方法?我检查了公开可用的文档并安装了 CTP,但没有看到任何有用的东西。
这篇文章解释了如何在 Powershell 中使用扩展方法
将此与某人在 C# 中所做的比较 - 他们添加了“使用 SomeAssembly”并加载了所有扩展方法。
这是否变得更简单 Powershell 2.0. 如果是这样,如何在 Powershell 2.0 中使用扩展方法?我检查了公开可用的文档并安装了 CTP,但没有看到任何有用的东西。
在 V2 中它并没有变得更容易,但是有一个您可能不知道的扩展机制。
我相信部分问题在于 PowerShell 对泛型的处理(或缺乏)。
此外,对于要应用的扩展方法,必须强制执行类型化集合,这在 PowerShell 中是困难的。PowerShell 作为一种动态语言,支持构建各种类型的集合,并且大多数集合都表示为 Object 数组。扩展方法需要从集合类型中推断出参数,然后检查谓词的类型是否正确。
如果您关心的是一些类似 LINQ 的函数,那么有许多 cmdlet 在处理对象集合时提供了相同的功能。
PowerShell 的扩展类型系统允许您通过添加 xml 文件或修改现有文件(建议创建新文件)来为各种类型添加方法。Jeffrey Snover 在这篇博文中演示了如何将 ScriptProperty 添加到 Object 类中。
它不完全相同,但它可以完成工作。