2013-08-02 25 views
15

靜態方法我有第三方DLL(C#編寫的)如何調用PowerShell中

,有一個叫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." 

,這是什麼,以及如何解決這個問題的原因?

+1

這可能是有用的告訴我們的第三方庫是什麼,帶我們去的類/方法的任何文件。 – jpmc26

+0

上面的錯誤指出connect()需要從類的一個實例中調用,所以一個簡單的x = new-object [DataPackage.Db.DBConnection]或類似的後面跟着x.connect()將解決這個問題。 :) – GMasucci

回答

1

這並不是PowerShell本身的問題,因爲您的方法調用確實是正確的。顯然,該方法本身試圖在某處解除引用null。也許其他方法必須先被調用,或者可能在某處設置靜態屬性。

+0

有什麼方法可以解決這個問題或確定什麼是實際原因。? – Sonali

+0

尋找的代碼,我想,即拆解它。我仍然在想,爲什麼C#中不會觸發它,顯然 – Joey

13

我討厭放棄一個答案,沒有超過個人經驗的參考,但我從來沒有找到這種行爲的解釋,所以對不起,這不是更多的信息。

當調用無參數方法時,請關閉參數。因此,對於你的例子做:

[DataPackage.Db.DBConnection]::Connect 

的,而不是...連接()

相關問題