Esto provoca una excepción en tiempo de compilación:¿Por qué C# prohíbe los tipos de atributos genéricos?
public sealed class ValidatesAttribute<T> : Attribute
{
}
[Validates<string>]
public static class StringValidation
{
}
Soy consciente de C# no soporta atributos genéricos. Sin embargo, después de mucho googlear, parece que no puedo encontrar el motivo.
¿Alguien sabe por qué los tipos genéricos no pueden derivarse de Attribute
? ¿Alguna teoria?
Podría hacer [Valida (typeof (cadena)] - Estoy de acuerdo con que los genéricos serían más agradables ... – ConsultUtah
Aunque es una adición muy tardía a esta pregunta, es triste que no solo se atribuyan atributos sino también clases de atributos abstractos (que obviamente no se pueden instanciar como atributos), como esta: 'clase abstracta Base: Atributo {} 'que podría usarse para crear clases derivadas no genéricas como esta:' clase Concreto: Base {} ' –
Lucero
Anhelo atributos genéricos y atributos que acepten lambdas. Imagine cosas como '' [DependsOnProperty (f => f.Bar)] '' o '' [ForeignKey (f => f.IdBar)] '' ... –