如何在powershell中调用静态方法

时间:2013-08-02 09:59:12

标签: powershell

我有第三方DLL(用c#编写)

它有一个名为DBConnection的类和名为Connect的静态方法 当我从我的C#控制台应用程序中调用该方法时,它将正常工作。

DataPackage.Db.DBConnection.Connect()

接下来,我尝试使用PowerShell做同样的事情。

[DataPackage.Db.DBConnection]::Connect()

但这给了我错误

Exception calling "Connect" with "0" argument(s): "Object reference not set to an instance of an object."

这是什么原因以及如何解决这个问题?

2 个答案:

答案 0 :(得分:25)

我讨厌在没有个人经验的参考的情况下删除答案,但我从未找到对此行为的解释,所以抱歉这不是更多信息。

调用无参数方法时,请关闭parens。所以对你的例子来说:

[DataPackage.Db.DBConnection]::Connect

而不是...... Connect()

答案 1 :(得分:1)

这不是PowerShell本身的问题,因为您的方法调用确实是正确的。显然,该方法本身试图在某处取消引用null。也许必须先调用其他方法,或者在某处设置静态属性。