Pergunta

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

Aqui, eu carregar um exe ou DLL e verificar o seu namespace. Em algumas dlls, não há namespace, de modo aclass.namespace não está presente e ele está jogando um NullReferenceException.

Eu tenho apenas para evitá-lo e ele deve continuar com resto do código. Se eu usar try-catch, ele executa a parte de captura; Eu quero que ele continue com o resto do código.

Foi útil?

Solução

é aClass uma instância Type? Se assim for - basta verificar isso para nulo:

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

Outras dicas

Do not capturar a exceção. Em vez disso, defender contra ele:

string nmspace = aClass.Namespace;

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

Adicione o teste para nulo na instrução if.

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

Ou usar um método de extensão para que verifica se há quaisquer valores nulos e ou retorna uma string vazia, ou o valor de string do objeto:

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

}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top