Как вызвать статический метод в 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
где-то. Возможно, сначала нужно вызвать другие методы или, возможно, установить статическое свойство.