2009-03-03 82 views
1

是否可以使用早期绑定从PowerShell调用.NET方法?PowerShell:.NET方法调用的性能

我有一个管道脚本,它在process {...}中调用单个.NET方法。 PowerShell通过反射来调用这个方法,而现在的Invoke(不是方法本身,只是反射调用)占用了总执行时间的70%。

该方法总是相同的,所以我宁愿要求PowerShell不要使用反射。

回答

3

我相信只有类型的方法调用的是在PowerShell中早期绑定,或至少早绑定为能够在动态语言,有以下几种

  1. 的cmdlet。
  2. 静态方法

我没有那么肯定#2。我相信他们仍然需要使用反思来获得潜在的方法。

CmdLets可能是更好的选择。在这种情况下,实际的呼叫很早就结束了,但参数仍然必须经过转换过程。尝试将你的方法调用移动到CmdLet中,看看是否能帮助你。

+0

感谢您的回答。问题是,如果我使用CmdLet方式,我将不得不创建一个C#项目,在这种情况下,为整个任务创建一个C#控制台应用程序会更容易。 我希望得到一个小的脚本(只需从dll API调用csv文件中所有条目的方法)。 – 2009-03-03 13:39:00