J'utilise C# pour écrire un programme simple pour lire Active Directory et afficher la valeur contenue dans un champ AD sur un programme de formulaire Windows.C# Test pour null
Si une propriété n'existe pas alors le programme se bloque, voici mon code, comment puis-je l'attraper et passer au champ suivant sans essayer/attraper pour chaque attribut?
DirectoryEntry usr = new DirectoryEntry("LDAP://" + domain, username, password);
DirectorySearcher searcher = new DirectorySearcher(usr);
searcher.Filter = "(sAMAccountName=" + GlobalClass.strUserName + ")";
searcher.CacheResults = false;
searcher.SearchScope = SearchScope.Subtree;
searcher.PropertiesToLoad.Add("givenName");
searcher.PropertiesToLoad.Add("telephoneNumber");
//program crashes here if telephoneNumber attribute doesn't exist.
textBoxFirstName.Text = usr.Properties["telephoneNumber"].Value.ToString();
Mais ne pas échouer si 'usr.Properties [ "telephoneNumber"] 'est-ce que 'null'? –
@Jim Mischel - Non. Ce n'est jamais nul. Regardez mon exemple 'usr.Properties [" OMG_PONIES "]'. J'ai pensé la même chose que le reste des réponses jusqu'à ce que je l'ai testé moi-même. Vous pouvez vous asseoir en tapant 'Properties [" RAR_FOO_DOH "]' et il ne retournera jamais null. – GenericTypeTea
+1, je n'ai pas pensé à vérifier si usr.Properties [] retournerait null. – Brandon