Aracılığıyla paylaş


GetEx Yöntemi

Bazı öznitelikler bir veya daha fazla değer depolayabilir. Örneğin, Active Directory'deki bir kullanıcı nesnesinin diğerTelephone özniteliği sıfır, bir veya çok değere sahip olabilecek bir özelliktir. Birden çok değeri olan öznitelikler "çok değerli öznitelikler" olarak bilinir. Çok değerli bir özniteliği almak için IADs::Get yöntemi kullanılıyorsa, sonuçların özniteliğin tek bir değeri olduğundan farklı işlenmesi gerekir. Ancak IADs::GetEx yöntemi tarafından sağlanan sonuçlar, özniteliğin tek veya birden çok değeri olup olmadığına bakılmaksızın aynı şekilde işlenir. Her iki durumda da IADs::GetEx yöntemi bir dizideki değerleri döndürür.

IADs::GetEx yöntemi özellik önbelleğinden özellikleri alır. Belirtilen özellik önbellekte bulunmazsa, IADs::GetEx örtük bir IADs::GetInfo çağrısı gerçekleştirir.

IADs::GetEx yöntemi, sunucudan döndürülen değer sayısından bağımsız olarak değişken dizisi döndürür. Özniteliği yalnızca bir değer içerse bile bu durum geçerlidir.

Dim usr As IADs
On Error GoTo Cleanup

Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
homePhones = usr.GetEx("otherHomePhone")
For each phone in homePhones
    Debug.Print phone
Next

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

IADs::GetEx yöntemi tek değerli öznitelikler için de kullanılabilir. Tek değerli bir özniteliğin sonuçları, çok değerli bir özniteliğin sonuçlarıyla aynı şekilde işlenir.

Dim usr as IADs
On Error GoTo Cleanup

Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
sds = usr.GetEx("ntSecurityDescriptor")
For each sd in sds
    Set acl = sd.DiscretionaryACL
Next

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

Öznitelik için hiçbir değer ayarlanmadıysa, IADs::GetEx "Özellik önbellekte bulunamadı" hatasını döndürür.