5

私は独自のDLLを使用する

[System.Reflection.Assembly]::LoadFile("E:\Group.School.dll")

の静的メソッドにアクセスしたいStudent class。その静的メソッドはオーバーロードされています。

Class Student
{        
    public static sting GetData(string id)
    {
        ....
    }

    public static sting GetData(string fName, string lName)
    {
        ....
    }        
}

PowerShell から、次のような最初のメソッドにアクセスします。

$data = [Group.School.Student]::GetData
$data.Invoke("myId") 

これは私に例外を与えます

"1" 個の引数を指定して "Invoke" を呼び出す例外: ""1" 個の引数を指定して "GetData" を呼び出す例外: "オブジェクト参照がオブジェクトのインスタンスに設定されていません。"

4

3 に答える 3

8

元のコードには、いくつかのタイプミス (例: Class)stingと間違いが含まれています。クラスは である必要がありますpublic

エラーなしで動作する修正されたコードは次のとおりです。

# the corrected code added inline (might be in a DLL, as well):
Add-Type @'
public class Student
{
    public static string GetData(string id)
    {
        return "data1";
    }

    public static string GetData(string fName, string lName)
    {
        return "data2";
    }
}
'@

# call the static method:
[Student]::GetData('myId')
于 2013-08-01T09:58:27.150 に答える
4

試す:

[Group.School.Student]::GetData('myId')
于 2013-08-01T09:05:24.457 に答える