Как вызвать статический метод в powershell

У меня есть сторонняя DLL (написанная в С#)

У этого класса есть класс DBConnection и статический метод, называемый Connect Когда я вызываю этот метод из моего консольного приложения на С#, как показано ниже, он будет работать нормально.

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."

В чем причина этого и как это исправить?

Ответы

Ответ 1

Ненавижу отказываться от ответа без ссылки за пределами личного опыта, но я никогда не нашел объяснения этого поведения, поэтому извините, что это не более информативно.

При вызове метода без параметров отключите параметры parens. Поэтому для вашего примера выполните следующие действия:

[DataPackage.Db.DBConnection]::Connect

вместо... Connect()

Ответ 2

Это не проблема с PowerShell как таковой, потому что ваш метод действительно прав. По-видимому, сам метод пытается разыменовать null где-то. Возможно, сначала нужно вызвать другие методы или, возможно, установить статическое свойство.