2010-05-10 11 views
13

Innanzitutto, desidero scrivere un tipo generico per le operazioni contro Active Directory sottostante.Qualsiasi equivalenza VBNET di C# in cui la parola chiave del vincolo generico?

Per quelli di voi che conoscono l'AD e lo System.DirectoryServices namespace, lo DirectoryEntry class è il più importante insieme alla classe DirectorySearcher.

Quando si parla la lingua AD, tutto è un DirectoryEntry. Detto questo, la mia applicazione deve gestire utenti, gruppi e unità organizzative (OU). Ognuno di questi oggetti sono voci di Active Directory. Quindi, mi sembra un buon candidato per GenericTypes.

Quello che voglio realizzare è questo:

public interface ITop { 
    string Path { get; set; } 
    string ObjectClass { get; } 
    string ContainerName { get; set; } 
    // [...] 
} 

public interface IGroup : ITop { 
    // Speciality properties here... 
} 

public interface IUser : ITop { 
    // Speciality properties here... 
} 

// And so forth... 

public sealed class DirectorySource<T> where T : ITop { 
    // Methods against AD here... 
} 

La mia libreria di classi deve rispondere al seguente criterio di organical:

  1. VS2005 VBNET
  2. NET 2.0
  3. Active Directory
  4. Windows Form

Bene, immagino di aver già fornito troppi dettagli per lo scopo della mia domanda, ma qualsiasi suggerimento sull'architettura e sui modelli di progettazione è ben accetto. La mia domanda è:

Esiste un'equivalenza VBNET 2.0 della parola chiave C# where (generic type constraint) o di eventuali soluzioni ottimali?

I risultati delle mie ricerche sembrano finire con la conclusione non risolvibile. Così sto chiedendo ...

risposta

35

Ti piace questa:

Public Class DirectorySource(Of T As ITop) 

vincoli multipli sono racchiusi da parentesi graffe, in questo modo:

Public Class DirectorySource(Of T As { ITop, IDisposable, Class, New }) 
+1

Si potrebbe pensare che sarebbe stato qualcosa di simile ' Di T come uno dei seguenti elementi ITop, IDisposable, Class, New' – ChaosPandion

+6

@ChaosPandion: I vincoli generici sono andate, non orati. – SLaks

Problemi correlati