2012-07-17 2 views
0

내부의 메소드를 호출하는 나는 다음과 같은 VB.NET 코드가 : 이제어떻게 VB.NET 모듈

Namespace Data 
    Public Module Part 
     Public function IsValidPart() 
     End Function 
    End Module 
End NameSpace 

, 어떻게 내가 Part 모듈의 IsValidPart 메서드를 호출 할을? 내가 메소드를 호출 할 때, 나는 다음과 같은 오류가 발생합니다 :

The type initializer for 'MyCompany.Lender.Data.Part' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object..

답변

3

문제 코드가 귀하의 발췌 문장에 없습니다. 이것은 모듈의 변수 초기화로 인해 발생합니다. 이러한 문제의 간단한 예는 다음과 같습니다.

Module Module1 
    Public Example As String = Nothing.ToString() 

    Sub Main() 
    End Sub 
End Module 

모듈의 정적 생성자가 실행될 때 알 수없는 TypeInitializationException이 발생합니다. 예제 변수가 초기화되도록 컴파일러에서 생성하는 코드입니다. 불행하게도, 디버거는 이에 대한 좋은 진단을 표시하지 않습니다.

Debug + Exceptions를 사용하여 문제 문을 찾을 수 있습니다. CLR 예외에 대해 Thrown 상자를 선택하십시오.

+0

당신이 옳았습니다! – azamsharp

0

정적/공유 메서드를 호출 것처럼 : 모듈에

Part.IsValidPart() 

모든 구성원이 공유/정적.

I get the following error: The type initializer for 'MyCompany.Lender.Data.Part'

편집 :

Sub New() 
    'An exception is being thrown somewhere in here 
End Sub 

은 당신이 실행하는 경우 당신은 자세한 내용을 얻을 수 있습니다, 당신의 예외를 수정 :

당신은 null 참조 예외를 던지고 모듈에 Sub New이 연결된 디버거.

+0

오류 메시지에 대한 업데이트 된 질문을 참조하십시오. 구현 한 메소드를 정확하게 호출합니다. – azamsharp

+0

@azamsharp 업데이트를 참조하십시오. – vcsjones

+0

파일을 검사했는데 새 하위 파일이 없습니다. 여전히 nullReferenceException을 던집니다. – azamsharp