У меня есть функция, которая ищет AD для атрибута (extensionAttribute3). Он отлично работает, если атрибут имеет значение, но если он не установлен, это ошибки с «Ссылка на объект, не установленная на экземпляр объекта». Это всегда ошибки на линии:Проверить значение Null в VB.NET
CurrentPIN = dirResult.GetDirectoryEntry.Properties("extensionAttribute3").Value.ToString
Я попытался с помощью «Если IsNothing» и «не IsNot ничего» для проверки значений NULL на обоих dirResult & CurrentPin, но это все еще ошибки. Как я могу успешно проверить значения NULL?
Проверка dirResult является NULL:
Private Function GetUserProperties()
Dim ADName As String = GetLogonName()
Dim CurrentPIN As String = Nothing
Dim dirEntry As DirectoryEntry = GetDirectoryEntry()
Dim dirSearcher As DirectorySearcher = New DirectorySearcher(dirEntry)
dirSearcher.Filter = ("(samAccountName=" & ADName & ")")
dirSearcher.PropertiesToLoad.Add("extensionAttribute3")
dirSearcher.SearchScope = SearchScope.Subtree
Dim dirResult As SearchResult = dirSearcher.FindOne()
If IsNothing(dirResult) Then
Return "<not set>"
Else
CurrentPIN = dirResult.GetDirectoryEntry.Properties("extensionAttribute3").Value.ToString
Return CurrentPIN
End If
End Function
Проверка CurrentPin является NULL:
Private Function GetUserProperties()
Dim ADName As String = GetLogonName()
Dim CurrentPIN As String = Nothing
Dim dirEntry As DirectoryEntry = GetDirectoryEntry()
Dim dirSearcher As DirectorySearcher = New DirectorySearcher(dirEntry)
dirSearcher.Filter = ("(samAccountName=" & ADName & ")")
dirSearcher.PropertiesToLoad.Add("extensionAttribute3")
dirSearcher.SearchScope = SearchScope.Subtree
Dim dirResult As SearchResult = dirSearcher.FindOne()
CurrentPIN = dirResult.GetDirectoryEntry.Properties("extensionAttribute3").Value.ToString
If IsNothing(CurrentPIN) Then
Return False
Else
Return CurrentPIN
End If
End Function
Не дублирующее, но очень рекомендуемое чтение [Что такое исключение NullReferenceException и как его исправить] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i -fix-it) Проверьте ответ, посвященный VB.NET – Steve
Вам просто нужно поместить нулевую проверку в нужное место. Это свойство «Свойства» («extensionAttribute3»). Скорее всего, ничего не будет, вы не сможете использовать свойство Value Nothing. –