如何在powershell中调用静态方法

如何在powershell中调用静态方法,powershell,Powershell,我有第三方DLL(用c#编写) 它有一个名为DBConnection的类和一个名为Connect 当我从下面的C#控制台应用程序调用该方法时,它将正常工作 DataPackage.Db.DBConnection.Connect() 接下来,我尝试使用powershell做同样的事情 [DataPackage.Db.DBConnection]::Connect() 但这给了我错误 Exception calling "Connect" with "0" argument(s): "Object

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

出现这种情况的原因是什么?如何解决这个问题???

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

我不喜欢在没有个人经验之外的参考的情况下给出答案,但我从未找到对这种行为的解释,因此很抱歉,这并没有提供更多信息

调用无参数方法时,请去掉参数。因此,对于您的示例,请执行以下操作:

[DataPackage.Db.DBConnection]::Connect

除了…Connect()

之外,是否有任何方法可以修复此问题或确定实际原因。?我想,查看代码,即分解代码。我仍在想一种方法,为什么它不会在C#中触发,显然告诉我们第三方库是什么,并向我们指出有关该类/方法的任何文档可能会有所帮助。上面的错误表明需要从该类的实例调用connect(),因此一个简单的x=new对象[DataPackage.Db.DBConnection]或类似的,后跟x.connect()将解决此问题。:)