2013-08-01 5 views
3

의 정적 메서드 내가 내 자신의 DLL을 사용하십시오 스크립트를 쓰고 있어요 : 나는 Student class정적 방법을 액세스 할전화 사용자 정의 클래스

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

. 그 정적 메서드가 오버로드되었습니다. PowerShell을에서

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

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

나는 다음과 같은 첫 번째 방법에 액세스하기 위하여려고하고있다 :

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

이 나에게 "1"과 "호출"을 호출

예외를 말하는 예외를 제공합니다 인수 : "1"인수가있는 "GetData"호출 예외 : "개체 참조가 개체의 인스턴스로 설정되지 않았습니다." "

답변

3

시도 : 원래 코드는 몇 가지 오타가 포함되어

[Group.School.Student]::GetData('myId') 
+1

같은 오류 ** 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ** –

6

(예를 들어, 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') 
0

하는 학생 클래스가 포함 된 DLL이, x86 용으로 컴파일하려고 Visual Studio에서 "모든 CPU"옵션을 사용하여 컴파일되지 않았는지 확인 : 여기

오류없이 작동 수정 된 코드입니다.

+1

이 질문에 어떻게 대답하는지 이해할 수 없습니다. 가장 큰 upvotes를 가진 응답은 당신의 계산서와 명확하게 충돌합니다. – rayryeng