Domanda

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

Qui, ho caricare un exe o dll e controllarne la spazio dei nomi. In alcune DLL, non c'è spazio dei nomi, quindi aclass.namespace non è presente e sta gettando un NullReferenceException.

Devo evitare proprio e dovrebbe continuare con resto del codice. Se uso try-catch, esegue la parte di cattura; Voglio che continui con il resto del codice.

È stato utile?

Soluzione

È aClass un'istanza Type? Se è così - basta controllare per nulla:

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

Altri suggerimenti

Non intercettare l'eccezione. Invece, difendere contro di essa:

string nmspace = aClass.Namespace;

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

Aggiungi il test per nulla nel if.

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

In alternativa, utilizzare un metodo di estensione a che verifica la presenza di eventuali valori null e né restituisce una stringa vuota o il valore stringa dell'oggetto:

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

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top