문제

 if (alMethSign[z].ToString().Contains(aClass.Namespace))

여기에서는 EXE 또는 DLL을로드하고 네임 스페이스를 확인합니다. 일부 DLL에는 네임 스페이스가 없으므로 aclass.namespace 존재하지 않고 던지고 있습니다 NullReferenceException.

나는 그것을 피해야하며 코드의 나머지 부분을 계속해야합니다. Try-Catch를 사용하면 캐치 부분을 실행합니다. 나머지 코드를 계속하고 싶습니다.

도움이 되었습니까?

해결책

~이다 aClassType 사례? 그렇다면 -Null을 확인하십시오.

if (aClass != null && alMethSign[z].ToString().Contains(aClass.Namespace))

다른 팁

예외를 포착하지 마십시오. 대신, 그것에 대해 방어하십시오 :

string nmspace = aClass.Namespace;

if (nmspace != null && alMethSign[z].ToString().Contains(nmspace))
{
    ...
}

if 문에 null에 대한 테스트를 추가하십시오.

if(aClass.NameSpace != null && alMethSign[z].ToString().Contains(aClass.Namespace))

또는 널 검사를 확인하고 객체의 빈 문자열 또는 문자열 값을 반환합니다.

public static string ToSafeString(this object o)
{
return o == null ? string.Empty : o.ToString();

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top