Ciò provoca un'eccezione durante la compilazione:
public sealed class ValidatesAttribute<T> : Attribute
{
}
[Validates<string>]
public static class StringValidation
{
}
Mi rendo conto che C # non supporta gli attributi generici. Tuttavia, dopo molto googling, non riesco a trovare il motivo.
Qualcuno sa perché i tipi generici non possono derivare Attribute
? Qualche teoria?
abstract class Base<T>: Attribute {}
che potrebbero essere utilizzate per creare non- classi derivate generiche come questa:class Concrete: Base<MyType> {}
[DependsOnProperty<Foo>(f => f.Bar)]
o [ForeignKey<Foo>(f => f.IdBar)]
...