32

我有第三方 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."

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

4

2 回答 2

37

我讨厌在没有个人经验之外的参考的情况下放弃答案,但我从来没有找到这种行为的解释,所以很抱歉这不是更多的信息。

调用无参数方法时,请不要使用括号。因此,对于您的示例,请执行以下操作:

[DataPackage.Db.DBConnection]::Connect

而不是 ...Connect()

于 2013-10-30T16:56:04.900 回答
2

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

于 2013-08-02T10:20:31.280 回答