32

私はサードパーティの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."

これの理由とこれを修正する方法は何ですか??

4

2 に答える 2

37

個人的な経験を超えた参照なしで回答をドロップするのは嫌いですが、この動作の説明を見つけたことがありません。申し訳ありませんが、これ以上の情報はありません。

パラメーターなしのメソッドを呼び出すときは、括弧を省略します。したがって、あなたの例では次のようにします。

[DataPackage.Db.DBConnection]::Connect

...Connect() の代わりに

于 2013-10-30T16:56:04.900 に答える
2

メソッド呼び出しが実際に正しいため、これは PowerShell 自体の問題ではありません。nullどうやらメソッド自体がどこかで逆参照を試みているようです。おそらく、他のメソッドを最初に呼び出す必要があるか、静的プロパティをどこかに設定する必要があります。

于 2013-08-02T10:20:31.280 に答える