代码之家  ›  专栏  ›  技术社区  ›  namenlos

在PowerShell v2中是否有更简单的方法使用扩展方法?

  •  6
  • namenlos  · 技术社区  · 16 年前

    背景

    本文解释如何使用PowerShell中的扩展方法

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

    将这与某人在C中所做的比较——他们添加了一个“using someassembly”,并且加载了所有扩展方法。

    我的问题

    这是否得到了更简单的PowerShell2.0。如果是这样,那么在PowerShell2.0中如何使用扩展方法呢?我已经检查了公共可用的文档并安装了CTP,没有发现有任何帮助。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Steven Murawski    16 年前

    在V2中,这并不容易,但是有一个您可能不知道的扩展机制。

    我认为部分问题在于PowerShell处理(或缺少)泛型。

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

    如果您关心的是一些类似LINQ的函数,那么在处理对象集合时,有许多Cmdlet提供相同的功能。

    PowerShell的扩展类型系统允许您通过添加XML文件或修改现有文件(建议创建新的路径)向各种类型添加方法。Jeffrey Snover演示了如何在中向对象类添加ScriptProperty。 this blog post .

    这不完全一样,但可以完成这项工作。