Це спричиняє виняток із часу компіляції:
public sealed class ValidatesAttribute<T> : Attribute
{
}
[Validates<string>]
public static class StringValidation
{
}
Я розумію, що C # не підтримує загальних атрибутів. Однак після довгого гуглінгу я не можу знайти причину.
Хтось знає, чому родові типи не можуть бути похідними Attribute
? Будь-які теорії?
abstract class Base<T>: Attribute {}
що можна було б використовувати для створення родові похідні класи на кшталт цього:class Concrete: Base<MyType> {}
[DependsOnProperty<Foo>(f => f.Bar)]
або [ForeignKey<Foo>(f => f.IdBar)]
...