En primer lugar, deseo escribirme un tipo genérico para las operaciones contra el Active Directory subyacente.Cualquier equivalencia VBNET de C# donde la palabra clave de restricción genérica?
Para aquellos de ustedes que conocen acerca de AD y el System.DirectoryServices namespace, el DirectoryEntry class es el más importante junto con la clase DirectorySearcher.
Cuando se habla el lenguaje AD, todo es un DirectoryEntry. Dicho esto, mi aplicación necesita administrar usuarios, grupos y unidades organizativas (OU). Cada uno de estos objetos son entradas AD. Entonces, esto me parece un buen candidato para GenericTypes.
Lo que quiero lograr es la siguiente:
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...
}
Mi biblioteca de clases debe responder a los siguientes criterios organical:
- VS2005 VBNET
- .NET 2.0
- Active Directory
- Windows Forms
Bueno, supongo que ya he dado demasiados detalles para el propósito de mi pregunta, pero cualquier sugerencia sobre la arquitectura y los patrones de diseño también es bienvenida. Mi pregunta es:
¿Existe una equivalencia de VBNET 2.0 de la palabra clave C# where (generic type constraint), o cualquier solución alternativa de mejores prácticas?
Los resultados de mis búsquedas parecen finalizar con la conclusión de que se puede deshacer. Así que estoy pidiendo ...
Se podría pensar que sería algo como esto ' De T como uno de los siguientes artículos ITop, IDisposable, Class, New' – ChaosPandion
@ChaosPandion: Las restricciones genéricas son anded, not ored. – SLaks