如何在powershell中调用静态方法
我有第三方DLL(用c#编写) 它有一个名为如何在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
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()将解决此问题。:)